Mysql选择字段中的值

时间:2014-05-06 16:28:04

标签: mysql

我有一个带有字段(id,name)的mysql表。 names字段是逗号分隔的名称数组。 (例如bob,joe,tim,fred)我想选择值在该名称数组中的所有行。我已经尝试了但无法使其工作。任何帮助表示赞赏!

SELECT * FROM table WHERE '$value' IN name

2 个答案:

答案 0 :(得分:0)

只有在您自己指定每个元素时,

IN才有效。

'bob' IN ('bob','joe','tim','fred')`

MySQL正在将逗号分隔的字符串作为一个值读取,而不是作为4.您的查询正在运行:

'bob' IN ('bob,joe,tim,fred')

因为'bob'并不存在于您提供IN的元素中而无法正常工作。

一种解决方案是使用FIND_IN_SET

SELECT * FROM table WHERE FIND_IN_SET('$value', name);

这样可行,但不会使用索引。

答案 1 :(得分:0)

FIND_IN_SET FUNCTION MYSQL

示例:语句在字符串列表中的第二位找到搜索字符串'ank'。所以它返回2.

SELECT FIND_IN_SET('ank', 'b,ank,of,monk'); 

功能:

 SELECT *   
 FROM author   
 WHERE FIND_IN_SET(left(aut_name,7), 'William,steven,jung,angalo') > 0;

阅读MySQL API并使用示例。希望有所帮助。