我有一些数据以逗号分隔的字符串形式存储在表中的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;
输出:
SELECT
id,
GROUP_CONCAT(CASE
WHEN user_values = '' THEN NULL
ELSE CONCAT("'", REPLACE(user_values,",", "','"), "'")
END) as user_val
FROM user
WHERE id = 3;
SELECT id,
GROUP_CONCAT( NULLIF(CONCAT("'", REPLACE(user_values, ",", "','") , "'"), "''"
) as user_val
FROM user
WHERE id = 3 ;