Mysql IN语句只找到列表中的第一个元素

时间:2012-08-31 12:37:53

标签: mysql sql

我有一个名为table的表,table中的一行包含一个值列,如下所示:6,7,8,9

我想选择这一行,这是我期望的代码:

SELECT * FROM table WHERE 8 IN (column)

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

SELECT * FROM table WHERE 6 IN (column)

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

这怎么可能?

1 个答案:

答案 0 :(得分:5)

因为您正在将数字与字符串进行比较。 6,7,8,9转换为数字6,因此6 IN (column)时会出现这种情况。

您需要使用FIND_IN_SET功能:

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