“IN”功能无法正常工作

时间:2012-10-04 00:04:27

标签: php sql function search

我想在数据库中的一个结构中找到一个值,但我的代码无法正常工作

// $dir_id = 2;
// dirs (in database) = 1,2,3

SELECT * FROM `items` WHERE (id='$id' && $dir_id IN(`dirs`)) ORDER BY `id` DESC

但是此代码无法找到2,它只是在dirs

中找到1

我怎么解决这个问题?

3 个答案:

答案 0 :(得分:2)

IN中,您将通过要匹配的ID列表,例如

AND dirs IN (1,2,3,4,5)

用你的例子:

SELECT * FROM `items` 
WHERE id='$id' 
AND dirs IN ('$dir_id')
ORDER BY `id` DESC

答案 1 :(得分:0)

我过去做过这个:

SELECT * FROM `items` WHERE (id='$id' && $dir_id IN(Select 'column_name' from `dirs`)) ORDER BY `id` DESC 

答案 2 :(得分:0)

如果您在"1,2,3"列中存储了字符dirs。 (通过你应该规范你的数据库设计。

然后您无法使用IN,而是需要使用 FIND_IN_SET

SELECT * FROM `items` 
WHERE (id='$id' AND FIND_IN_SET('$dir_id', `dirs`)) 
ORDER BY `id` DESC
相关问题