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函数和方法都用了,没能找到一个合适的解决办法
多谢~~~

解决方案 »

  1.   

    以下为测试数据: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'); 
      

  2.   

    这么复杂的逻辑用程序来实现方便一些,SQL语句估计困难。
      

  3.   

    在mysql里面写一个函数吧
      

  4.   

    循环数组[1,2,3],拼接sql形成这种:
    ok,满足需求,一次搞定
      

  5.   

    你这个需求, 不就like吗?tag就是一个字符串, 然后用like搜索它