0

我有一个名为的表table,其中一行table有一个带有如下值的列:6,7,8,9

我想选择这一行,这是我希望工作的代码:

SELECT * FROM table WHERE 8 IN (column)

它不起作用。然而,有效的代码让我感到困惑:

SELECT * FROM table WHERE 6 IN (column)

我尝试了几个值,发现只有列表的第一个元素有效。

怎么会这样?

4

1 回答 1

5

因为您正在将数字与字符串进行比较。6,7,8,9cast to number 将是6,所以它会在 do 时为真6 IN (column)

您需要使用FIND_IN_SET功能:

SELECT * FROM `table` WHERE FIND_IN_SET(8, `column`);
于 2012-08-31T12:41:49.390 回答