我有一个名为table
的表,table
中的一行包含一个值列,如下所示:6,7,8,9
我想选择这一行,这是我期望的代码:
SELECT * FROM table WHERE 8 IN (column)
它不起作用。然而,有效的代码让我困惑:
SELECT * FROM table WHERE 6 IN (column)
我尝试了几个值,发现只有列表的第一个元素正常工作。
这怎么可能?
答案 0 :(得分:5)
因为您正在将数字与字符串进行比较。 6,7,8,9
转换为数字6
,因此6 IN (column)
时会出现这种情况。
您需要使用FIND_IN_SET
功能:
SELECT * FROM `table` WHERE FIND_IN_SET(8, `column`);