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