考虑我有这样一张桌子。
+-------------+---------------+----------------+---------------+ + 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的任何东西
有没有办法使用查询来选择我想要的行?
答案 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%'