FIND_IN_SET和GROUP_CONCAT的用法
2016-05-15 22:13
597 查看
find_in_set 函数使用方法
个例子来说:
有个文章表里面有个type字段,它存储的是文章类型,有 1头条、2推荐、3热点、4图文...1,12,13
等等 。
现在有篇文章他既是 头条,又是热点,还是图文,
type中以 1,3,4 的格式存储。
那我们如何用sql查找所有type中有4图文标准的文章呢??
这就要我们的 find_in_set 出马的时候到了。
以下为引用的内容:
select * from article
where FIND_IN_SET('4',type)
GROUP_CONCAT的用法
基本查询
Sql代码
![](https://oscdn.geek-share.com/Uploads/Images/Content/201605/15/b4b1f0c932ba51a9d57f43a021cc3131.png)
select * from aa;
+------+------+
| id| name |
+------+------+
|1 | 10|
|1 | 20|
|1 | 20|
|2 | 20|
|3 | 200 |
|3 | 500 |
+------+------+
6 rows in set (0.00 sec)
以id分组,把name字段的值打印在一行,逗号分隔(默认)
Sql代码
![](https://oscdn.geek-share.com/Uploads/Images/Content/201605/15/b4b1f0c932ba51a9d57f43a021cc3131.png)
select id,group_concat(name) from aa group by id;
+------+--------------------+
| id| group_concat(name) |
+------+--------------------+
|1 | 10,20,20|
|2 | 20 |
|3 | 200,500|
+------+--------------------+
3 rows in set (0.00 sec)
以id分组,把name字段的值打印在一行,分号分隔
Java代码
![](https://oscdn.geek-share.com/Uploads/Images/Content/201605/15/b4b1f0c932ba51a9d57f43a021cc3131.png)
select id,group_concat(name separator ';') from aa group by id;
+------+----------------------------------+
| id| group_concat(name separator ';') |
+------+----------------------------------+
|1 | 10;20;20 |
|2 | 20|
|3 | 200;500 |
+------+----------------------------------+
3 rows in set (0.00 sec)
以id分组,把去冗余的name字段的值打印在一行,
逗号分隔
Sql代码
![](https://oscdn.geek-share.com/Uploads/Images/Content/201605/15/b4b1f0c932ba51a9d57f43a021cc3131.png)
select id,group_concat(distinct name) from aa group by id;
+------+-----------------------------+
| id| group_concat(distinct name) |
+------+-----------------------------+
|1 | 10,20|
|2 | 20 |
|3 | 200,500 |
+------+-----------------------------+
3 rows in set (0.00 sec)
以id分组,把name字段的值打印在一行,逗号分隔,以name排倒序
Sql代码
![](https://oscdn.geek-share.com/Uploads/Images/Content/201605/15/b4b1f0c932ba51a9d57f43a021cc3131.png)
select id,group_concat(name order by name desc) from aa group by id;
+------+---------------------------------------+
| id| group_concat(name order by name desc) |
+------+---------------------------------------+
|1 | 20,20,10 |
|2 | 20|
|3 | 500,200|
+------+---------------------------------------+
3 rows in set (0.00 sec)
个例子来说:
有个文章表里面有个type字段,它存储的是文章类型,有 1头条、2推荐、3热点、4图文...1,12,13
等等 。
现在有篇文章他既是 头条,又是热点,还是图文,
type中以 1,3,4 的格式存储。
那我们如何用sql查找所有type中有4图文标准的文章呢??
这就要我们的 find_in_set 出马的时候到了。
以下为引用的内容:
select * from article
where FIND_IN_SET('4',type)
GROUP_CONCAT的用法
基本查询
Sql代码
![](https://oscdn.geek-share.com/Uploads/Images/Content/201605/15/b4b1f0c932ba51a9d57f43a021cc3131.png)
select * from aa;
+------+------+
| id| name |
+------+------+
|1 | 10|
|1 | 20|
|1 | 20|
|2 | 20|
|3 | 200 |
|3 | 500 |
+------+------+
6 rows in set (0.00 sec)
以id分组,把name字段的值打印在一行,逗号分隔(默认)
Sql代码
![](https://oscdn.geek-share.com/Uploads/Images/Content/201605/15/b4b1f0c932ba51a9d57f43a021cc3131.png)
select id,group_concat(name) from aa group by id;
+------+--------------------+
| id| group_concat(name) |
+------+--------------------+
|1 | 10,20,20|
|2 | 20 |
|3 | 200,500|
+------+--------------------+
3 rows in set (0.00 sec)
以id分组,把name字段的值打印在一行,分号分隔
Java代码
![](https://oscdn.geek-share.com/Uploads/Images/Content/201605/15/b4b1f0c932ba51a9d57f43a021cc3131.png)
select id,group_concat(name separator ';') from aa group by id;
+------+----------------------------------+
| id| group_concat(name separator ';') |
+------+----------------------------------+
|1 | 10;20;20 |
|2 | 20|
|3 | 200;500 |
+------+----------------------------------+
3 rows in set (0.00 sec)
以id分组,把去冗余的name字段的值打印在一行,
逗号分隔
Sql代码
![](https://oscdn.geek-share.com/Uploads/Images/Content/201605/15/b4b1f0c932ba51a9d57f43a021cc3131.png)
select id,group_concat(distinct name) from aa group by id;
+------+-----------------------------+
| id| group_concat(distinct name) |
+------+-----------------------------+
|1 | 10,20|
|2 | 20 |
|3 | 200,500 |
+------+-----------------------------+
3 rows in set (0.00 sec)
以id分组,把name字段的值打印在一行,逗号分隔,以name排倒序
Sql代码
![](https://oscdn.geek-share.com/Uploads/Images/Content/201605/15/b4b1f0c932ba51a9d57f43a021cc3131.png)
select id,group_concat(name order by name desc) from aa group by id;
+------+---------------------------------------+
| id| group_concat(name order by name desc) |
+------+---------------------------------------+
|1 | 20,20,10 |
|2 | 20|
|3 | 500,200|
+------+---------------------------------------+
3 rows in set (0.00 sec)
相关文章推荐
- Python学习笔记:函数
- Android——解析HTML网页
- C语言的那些秘密之---函数返回局部…
- VMware网络配置详解
- 虚拟机静态ip地址(桥接)设置过程…
- C 指针之右左法则
- iwpriv指令
- iwconfig iwpriv
- iwconfig相关工具的使用
- Debian 6 Squeeze允许root登录
- 手动编译VMware Tools 内核模块
- debian ls 文件 文件夹颜色显示
- linux mount挂载设备
- fdisk简介、使用方法、实例解说 for Linux
- 如何在C语言中巧用正则表达式
- 网络通信常见问题
- 细说#pragma pack(n)
- 字节对齐详解
- gcc #pragma 与__attribute
- tcp wrapper 学习