4

考虑一下我有一张这样的桌子。

+-------------+----------------+----------------+-- -------------+
+ id + 第 1 列 + 第 2 列 + 第 3 列 +
+-------------+----------------+----------------+-- -------------+
+ 1 + 值 + 值 + a、b、c、d、e +  
+-------------+----------------+----------------+-- -------------+

我的查询可以是这样的

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

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

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

4

4 回答 4

5

use FIND_IN_SET() -- a builtin function for mysql to search a string

SELECT  *
FROM    tableName
WHERE column 1 = 'values' and  FIND_IN_SET('a',column 3 )>0
于 2013-07-15T07:25:26.420 回答
3

尝试这个

SELECT  *
FROM    table
WHERE   FIND_IN_SET('$variable', column 3)
于 2013-07-15T07:33:14.213 回答
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 )

于 2013-07-15T07:40:49.013 回答
1

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

于 2013-07-15T07:32:57.040 回答