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

k2fxgqgv  于 2023-05-05  发布在  Mysql
关注(0)|答案(1)|浏览(159)

我有一个名为table的表,其中一行的值如下所示:6,7,8,9
我想选择这一行,这是我希望工作的代码:
SELECT * FROM table WHERE 8 IN (column)
它不工作。然而,工作的代码让我困惑:
SELECT * FROM table WHERE 6 IN (column)
我尝试了几个值,发现只有列表的第一个元素是有效的。
怎么会这样?

utugiqy6

utugiqy61#

因为你在比较数字和字符串。6,7,8,9转换为number将是6,因此当do 6 IN (column)时,它将为true。
你需要使用FIND_IN_SET函数:

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

相关问题