赞
踩
group_concat
and concat
group_concat
可以用来合并多个行的查询结果
mysql> select * from food; ---- ----------- | id | food_name | ---- ----------- | 1 | 香蕉 | | 2 | 苹果 | ---- ----------- 2 rows in set (0.00 sec) -- 这里将`food_name`使用逗号拼接出来 mysql> select group_concat(food_name SEPARATOR ',') as names from food; --------------- | names | --------------- | 香蕉,苹果 | --------------- 1 row in set (0.00 sec) -- 注意:查询出的结果可能被截断,因为group_concat有长度限制 -- 修改长度限制 set SESSION group_concat_max_len = 51200
-- 根据食物名称反查数据 mysql> select * from food where food_name in (select group_concat(food_name SEPARATOR ',') as names from food); Empty set (0.01 sec) -- 数据为空 -- 原因:food_name为char类型,但是 group_concat 拼接出的数据并不是字符串,所以要进行处理 mysql> select group_concat(concat("'", food_name, "'") SEPARATOR ',') as names from food; --------------------- | names | --------------------- | '香蕉','苹果' | --------------------- 1 row in set (0.00 sec)
我的个人博客有空来坐坐
https://www.wangyanan.online
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。