SELECT user_name, user_mobile, user_type, GROUP_CONCAT( org_uid ) FROM t_iot_user WHERE 1 = 1 GROUP BY user_mobile, user_type 将这行sql优化成不需要gropyconcat
时间: 2023-03-24 08:05:03 浏览: 68
可以使用子查询来优化这行 SQL,如下所示:
SELECT user_name, user_mobile, user_type,
(SELECT GROUP_CONCAT(org_uid) FROM t_iot_user t2 WHERE t2.user_mobile = t1.user_mobile AND t2.user_type = t1.user_type) AS org_uid
FROM t_iot_user t1
WHERE 1 = 1;
这样就不需要使用 GROUP BY 和 GROUP_CONCAT 函数了。
相关问题
SELECT user_name, user_mobile, user_type, org_uid FROM t_iot_user WHERE 1 = 1 GROUP BY user_mobile, user_type, org_uid 如何将查询出来的org_uid按照user_mobile和user_type聚合
可以使用以下 SQL 语句实现:
SELECT user_mobile, user_type, GROUP_CONCAT(org_uid) AS org_uid_list
FROM t_iot_user
GROUP BY user_mobile, user_type
这样就可以将查询出来的 org_uid 按照 user_mobile 和 user_type 进行聚合,并将聚合后的 org_uid 以逗号分隔的形式列出。
select group_concat(userName) from sys_user where id = replace('1300063693438439425|1442049616303362049|1532176848927469569', '|');
这条SQL语句有误,需要修改。如果想要将"1300063693438439425|1442049616303362049|1532176848927469569"这个字符串中的数字作为id在sys_user表中查询对应的userName,并将所有userName用逗号连接起来,可以使用以下SQL语句:
```
SELECT GROUP_CONCAT(userName SEPARATOR ',')
FROM sys_user
WHERE id IN (1300063693438439425, 1442049616303362049, 1532176848927469569);
```
其中,IN函数用于查询id为给定数字的记录,GROUP_CONCAT函数用于将查询结果连接起来,SEPARATOR参数表示连接符号。