0
我有一个表,如下所示:显示结果,当条件SQL查询满足
Username | Status
aaa | Pending
bbbbbbb | Pending
cccc | Cancelled
dddddddd | Cancelled
eeeeee | Approved
ffffff | Approved
,我想在最后显示结果是这样的:
Status | Username
Pending | ***aaa, ***bbbb
Cancelled | ***cccc, ***ddddd
Approved | ***eee, ***fff
我试图做这个选择查询
SELECT distinct status,CASE WHEN LENGTH(username) >=6 THEN GROUP_CONCAT(replace(username, left(username, 3) , '***') SEPARATOR ', ') ELSE GROUP_CONCAT('***',username SEPARATOR ', ') END AS Username FROM table group by status
然而,bbbbbbb
结果来回我的查询不起作用,因为第一行有3个字符的用户名。所以,结果变成这样:
Status | Username
Pending | ***aaa, ***bbbbbbb // wrong (it should be ***aaa , ***bbbb)
Cancelled | ***cccc, ***ddddd // true
Approved | ***eee, ***fff // true
如何执行查询以显示我预期的结果?前
你用'(username)> = 3'得到了什么结果? – C2486
'aaa'将显示''***只有当我使病情'长度(用户名)> = 3',我想显示'*** aaa' @Rishi –
我想你想隐藏用户全名,如果用户名是'aaa',你为什么要显示'*** aaa',它显示完整的用户名,你可以显示像'******'一样的显示吗? – C2486