使用逗号分隔值选择mysql列

时间:2013-07-15 07:22:02

标签: mysql

考虑我有这样一张桌子。

+-------------+---------------+----------------+---------------+
+     id      +    column 1   +    column 2    +    column 3   +
+-------------+---------------+----------------+---------------+ 
+      1      +     values    +     values     + a, b, c, d, e +  
+-------------+---------------+----------------+---------------+

我的查询可以是这样的

SELECT * FROM table WHERE column 1 = 'values' AND column 3 = '$variable'

$变量可以是从a到e的任何东西

有没有办法使用查询来选择我想要的行?

4 个答案:

答案 0 :(得分:5)

使用FIND_IN_SET() - mysql的内置函数来搜索字符串

SELECT  *
FROM    tableName
WHERE column 1 = 'values' and  FIND_IN_SET('a',column 3 )>0

答案 1 :(得分:3)

试试这个

SELECT  *
FROM    table
WHERE   FIND_IN_SET('$variable', column 3)

答案 2 :(得分:2)

mysql函数find_in_set只能搜索一组字符串中的一个字符串。第一个参数是一个字符串,所以没有办法让它将逗号分隔的字符串解析成字符串(你根本不能在SET元素中使用逗号!)。第二个参数是一个SET,它反过来用逗号分隔的字符串表示,因此你希望find_in_set('a,b,c','a,b,c,d')工作正常,但它肯定可以'根据定义,在任何SET中找到字符串'a,b,c' - 它包含逗号。

  

SELECT * FROM tableName WHERE column 1 ='values'和   FIND_IN_SET('a',column3)

答案 3 :(得分:1)

使用此查询select * from table where column 1 ='values'AND column 3 like'%$ value%'