mysql 如何查询指定的多个以逗号分割值是否在以逗号分隔的数据中

惟一技术 2015-01-03 03:07:01
mysql 如何查询指定的多个以逗号分割值是否在以逗号分隔的数据中
比如有个table1的表,里面有一栏叫 tag ,tag中的数据为
tag
——
34,2
10
10,34
10,2
10,34,2
查询条件 tag 为34,10的时候 只要求查询出 第二条(10)和第三条(10,34)的记录,
tag为为10,2的时候 只要求查询出 第二条(10)和第四条(10,2)的记录,

SELECT * FROM table1 WHERE (FIND_IN_SET(34,tag) OR FIND_IN_SET(10,tag))

SELECT * FROM table1 WHERE tag IN (34,10)

LOCATE、REGEXP函数和方法都用了,没能找到一个合适的解决办法
多谢~~~
...全文
2571 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaohuh421 2018-12-07
  • 打赏
  • 举报
回复
你这个需求, 不就like吗? tag就是一个字符串, 然后用like搜索它
夏~ 2018-12-05
  • 打赏
  • 举报
回复
循环数组[1,2,3],拼接sql形成这种: ok,满足需求,一次搞定
笨笨仔 2015-01-04
  • 打赏
  • 举报
回复
你的字段中数据并不唯一,因此判断需要解决 分割和比较,单靠查询语句完成不了,可通过查询+函数的方法实现,写一个自定义的函数,将查询语句的判断条件改变。
hhhh63 2015-01-04
  • 打赏
  • 举报
回复
在mysql里面写一个函数吧
zyq5945 2015-01-03
  • 打赏
  • 举报
回复
这么复杂的逻辑用程序来实现方便一些,SQL语句估计困难。
惟一技术 2015-01-03
  • 打赏
  • 举报
回复
以下为测试数据: CREATE TABLE test(id int(6) NOT NULL AUTO_INCREMENT,PRIMARY KEY (id),tag VARCHAR(50) NOT NULL); 然后插入带有逗号分隔的测试数据 INSERT INTO test(tag) VALUES('34,2'); INSERT INTO test(tag) VALUES('10'); INSERT INTO test(tag) VALUES('10,34'); INSERT INTO test(tag) VALUES('10,2'); INSERT INTO test(tag) VALUES('10,34,2');

4,018

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧