V2版本: 改进操作界面,统一表单样式,更多工具支持批量生成,欢迎使用 到达~


文库 阅读
作者: xiaoyu 10/19 23:24:04

SQL字段中用逗号隔开的值怎么查询?

一、FIND_IN_SET (推荐)

FIND_IN_SET(str,strlist)

str 要搜索的字符串;strlist 要搜索的字符串值列表(以逗号分隔 如 (1,2,5,6,8))

假设角色表role有以下内容,uid 字段表示用户拥有这种角色。

id |uid    |
---+-------+
 1 |1,2    |
 2 |1,2,3  |
 3 |4,5    |
 4 |1,2,120|
 5 |3,4,5  |

1. 查询用户ID包含 1 的数据

select * from role where FIND_IN_SET('1',uid)

查询结果:

id|uid    | 
--+-------+           
 1|1,2    |    
 2|1,2,3  |         
 4|1,2,120|     

2. 查询用户ID包含 5 的数据

select * from role where FIND_IN_SET('5',uid)

查询结果:

id|uid   |
--+------+
 3|4,5   |
 5|3,4,5 |

二、用LIKE 查询 在两边都加上逗号

这样做法需要在保存数据时,在左右两边都加上逗号。

SELECT * FROM role WHERE uid LIKE '%,2,%';
存储示例:正常存储==》like查询存储
|id|  uid  |                  |id|    uid  |
--+--------+                   --+---------+
 |1|1,2    |      ===>>        |1|,1,2,    |
 |2|1,2,3  |                   |2|,1,2,3,  |
 |4|1,2,120|                   |4|,1,2,120,|

About

在一个字段当中,我们可能保存在多个标签,每个标签之间逗号隔开。那么只查找某一个标签要怎么写SQL呢?

Resources

发布

未发布任何资源
首页 搜索 喜欢 我的
定制咨询
微信二维码
扫一扫上面的二维码,加我为朋友。
微信扫码周一至周六服务
定制你的工具