2012-08-31 56 views
0

我有一個在table名爲table和一個行的表中有一個帶有值列如下:6,7,8,9在MySQL語句只找到的第一個元素在列表

我想選擇該行,這是代碼我預期工作:

SELECT * FROM table WHERE 8 IN (column)

它不工作。但是其工作原理的代碼混淆了我:

SELECT * FROM table WHERE 6 IN (column)

我試着與幾個值,結果發現,只有列表中的第一個元素是工作。

這怎麼可能?

+0

看看[這個答案](http://stackoverflow.com/a/10953029/259457)。我認爲它會做你想做的。 – Travesty3

回答

4

因爲您正在比較數字和字符串。 6,7,8,9投到號碼將是6,所以當6 IN (column)時將是真實的。

您需要使用FIND_IN_SET功能:

SELECT * FROM `table` WHERE FIND_IN_SET(8, `column`); 
+1

我現在是一個快樂的人。 – toraman

相關問題