group_concat在mysql中为空值插入双引号

问题描述 投票:0回答:2

我有一些数据以逗号分隔的字符串形式存储在表中的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;

输出:

mysql sql group-by group-concat
2个回答
1
投票
SELECT id, GROUP_CONCAT(CASE WHEN user_values = '' THEN NULL ELSE CONCAT("'", REPLACE(user_values,",", "','"), "'") END) as user_val FROM user WHERE id = 3;

0
投票
SELECT id, GROUP_CONCAT( NULLIF(CONCAT("'", REPLACE(user_values, ",", "','") , "'"), "''" ) as user_val FROM user WHERE id = 3 ;
© www.soinside.com 2019 - 2024. All rights reserved.