Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个名为的表table,其中一行table有一个带有如下值的列:6,7,8,9
table
6,7,8,9
我想选择这一行,这是我希望工作的代码:
SELECT * FROM table WHERE 8 IN (column)
它不起作用。然而,有效的代码让我感到困惑:
SELECT * FROM table WHERE 6 IN (column)
我尝试了几个值,发现只有列表的第一个元素有效。
怎么会这样?
因为您正在将数字与字符串进行比较。6,7,8,9cast to number 将是6,所以它会在 do 时为真6 IN (column)。
6
6 IN (column)
您需要使用FIND_IN_SET功能:
FIND_IN_SET
SELECT * FROM `table` WHERE FIND_IN_SET(8, `column`);