mysql 函数FIND_IN_SET、group_concat 、concat、cast的高级应用

本文探讨了在SQL中使用group_concat进行字段拼接的方法,并对比了concat函数的用法,介绍了如何处理多个人员ID存储及查询的场景。

之前思考会不会出现这样的问题:(测试结果是不会出现这个问题)

    如果u.id是数字自增长的,就需要做处理,UUID不用处理,因为比较的是字符串包含。

1、如果数据存储人员或者其他,用一个字段存储,并且用逗号分隔。

    eg:一个字段存储多个人id,逗号分隔。查询出列表,带上人员名称用逗号分隔。


SELECT
p.*, od. NAME AS dName,
(
SELECT
GROUP_CONCAT(u. NAME)
FROM
org_user u
WHERE
FIND_IN_SET(CAST(u.id AS CHAR), p.member)
) AS members
FROM
hazard_p p
LEFT JOIN org_d od ON od.id = p.depart_id
LEFT JOIN sys_u u FIND_IN_SET(CAST(u.id AS CHAR), p.member)
WHERE

1=1


2、group_concat 和 concat 的区别

group_concat:

select group_concat(name) as names from user 


concat:

select concat(name) as names from user 











评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值