2012-10-04 209 views
0

我想找到結構中的一個數據庫中的值,但我的代碼無法正常工作「IN」功能無法正常工作

// $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我如何解決這個問題?

回答

2

IN你會過去,你想匹配,例如

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

你的榜樣ID列表:

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

我在過去做到了這一點:

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

如果您在dirs列中存儲字符串"1,2,3"。 (通過你應該歸你DB設計。

那麼你可以不使用IN,則需要使用FIND_IN_SET代替。

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