MySQL:IN()中逗号分隔的字符串

时间:2016-11-03 11:46:05

标签: mysql

我在类似的问题上看到了很多问题。但是,所有答案都具有误导性。大多数答案都说使用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'将始终保持为字符串。这就是问题所在。

1 个答案:

答案 0 :(得分:4)

  

大多数答案都说使用FIND_IN_SET这对我的问题完全不正确

完全正确。如果它不适合你 - 那么你只是错了。

SELECT * FROM data_table WHERE FIND_IN_SET(field_id, '618,622,626,773,776')