我在类似的问题上看到了很多问题。但是,所有答案都具有误导性。大多数答案都说使用FIND_IN_SET,这似乎对我的问题不正确。
以下查询:
SELECT
*
FROM
data_table
WHERE field_id IN ('618,622,626,773,776');
通常会显示第一个ID行。在这个例子中是' 618'
id data
--- ------
618 ....
如果没有使用任何存储过程或用户定义的函数,如何使用?显示以下结果:
id data
--- ------
618 ....
622 ....
626 ....
773 ....
776 ....
注意; ' 618,622,626,773,776'将始终保持为字符串。这就是问题所在。
答案 0 :(得分:4)
大多数答案都说使用FIND_IN_SET这对我的问题完全不正确。
完全正确。如果它不适合你 - 那么你只是错了。
SELECT * FROM data_table WHERE FIND_IN_SET(field_id, '618,622,626,773,776')