我想找到結構中的一個數據庫中的值,但我的代碼無法正常工作「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我如何解決這個問題?
我想找到結構中的一個數據庫中的值,但我的代碼無法正常工作「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我如何解決這個問題?
在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
我在過去做到了這一點:
SELECT * FROM `items` WHERE (id='$id' && $dir_id IN(Select 'column_name' from `dirs`)) ORDER BY `id` DESC
如果您在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