先来几个SQL看看效果
SELECT i.*,n.*
FROM i
LEFT JOIN n on FIND_IN_SET(n.id, i.n_id)
GROUP BY n.id
效果图:

想把信息都放一行里面怎么办呢?我们就要用到group_concat函数了
SELECT i.*,
GROUP_CONCAT(n.id) nid,
GROUP_CONCAT(n.name) name
FROM i
LEFT JOIN n on FIND_IN_SET(n.id, i.n_id)
GROUP BY i.id
效果图:

- 简单介绍下这两个SQL函数
group_concat()
1、功能:将group by产生的同一个分组中的值连接起来,返回一个字符串结果。
2、语法:group_concat( [distinct] 要连接的字段 [order by 排序字段 asc/desc ] [separator '分隔符'] )
find_in_set(str,strlist)
相当于 in 的升级版,其中str为要查询的目标字符串, strlist为字符串的集合。
今天也要加油呀
本文深入讲解SQL中的group_concat()和find_in_set()函数使用技巧,通过实例演示如何优化数据展示,实现信息的一行显示,适合数据库操作人员及SQL初学者学习。
5271

被折叠的 条评论
为什么被折叠?



