2015-12-19 48 views
3

我使用下面的查詢過濾從我的表中的記錄:IN操作符不能用細繩工作值

SELECT * FROM teacher_info WHERE teaching_locations in ('Salt Lake City'); 

它返回一個空的結果,即使我已經存儲在表中teaching_locations列下面的值:newyork,Salt Lake City,los angeles

我已經嘗試過使用其他值,並且與其他值之間的空格值之間的值除外,它工作正常。例如,如果列值爲'newyork',則查詢工作正常。

+0

您所查詢的工作對我來說很好。 http://sqlfiddle.com/#!9/2f11a/2 –

+0

有一個相關的問題可能對你有用 - [有用的問題](http://stackoverflow.com/questions/4155873/find-in-set -vs-in) –

+0

這是將多個值存儲在單個列中時發生的情況 - 這不是關係方式。使用聯結表並且您的查詢將變得更加簡單快捷。 –

回答

0

使用FIND_IN_SET()而不是IN運算符。

試試這個:

SELECT * 
FROM `teacher_info` 
WHERE FIND_IN_SET('Salt Lake City', teaching_locations); 
+0

如果有多個值,那麼該怎麼辦?例如,我想在teaching_locations中找到新球衣,紐約和鹽湖城 – user2623213