【发布时间】:2020-05-05 08:47:45
【问题描述】:
我在表中存储了一些数据作为 user_values 列中的逗号分隔字符串,因此根据我的要求,我想获取特定的用户数据,并且存储在 user_values 列中的值应该用单引号括起来,为此我正在使用下面的查询和它工作正常,但是如果特定用户在 user_values 列中没有任何值,那么在查询下面获取 user_values 并插入一个双引号但是它应该为该列获得空值,因此如果特定列为空,如何防止双引号用户。
表格
id user_values
1 1,2
2 3,4,5
3 // empty / no value for this user
4 4,7
mysql查询:
案例 1:如果用户 1 在 user_values 列中有值,则
SELECT id,GROUP_CONCAT( CONCAT("'", REPLACE(user_values,",", "','") , "'")) as user_val
FROM user
WHERE id=1;
输出:
案例 2:如果用户没有任何值,则在空列中插入 double
SELECT id, GROUP_CONCAT( CONCAT("'", REPLACE(user_values,",", "','") , "'")) as user_val
FROM user
WHERE id=3;
输出:
【问题讨论】:
-
为什么是
REPLACE(user_values,",", "','")?你有逗号在列user_values吗? -
是的,我有逗号
-
为什么不规范化你的架构?如果做不到这一点,为什么还要使用 RBDMS?
标签: mysql sql group-by group-concat