gpt4 book ai didi

php - 当sql查询满足条件时,在前3个字符处使用***显示字段结果

转载 作者:行者123 更新时间:2023-11-29 11:28:48 25 4
gpt4 key购买 nike

我有一个看起来像这样的表格:

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

如何执行查询以显示我预期的结果?先谢谢了

最佳答案

据我了解,您需要将CASE移动到GROUP_CONCAT内。像这样的事情:

SELECT DISTINCT status,
GROUP_CONCAT(
CASE
WHEN LENGTH(username) >= 6 THEN REPLACE(username, LEFT(username, 3), '***')
ELSE CONCAT('***', username)
END SEPARATOR ', '
)AS Username
FROM table
GROUP BY status

关于php - 当sql查询满足条件时,在前3个字符处使用***显示字段结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37759733/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com