MySQL SELECT WHERE'a'IN(`field`)

fly*_*ris 1 mysql select where

我知道拥有这样的MySQL表结构不是适当的技术,但是我必须使用这种结构。问题是,表中的字段的值带有逗号分隔的整数,例如“ 1,3,5,7,10”,我希望查询返回行,其中field对查询传递的数字中有一个,例如:

SELECT * FROM `table` WHERE '5' IN (`field_in_table`)
Run Code Online (Sandbox Code Playgroud)

但是,如果在这种情况下'5'不是该字段中的第一个数字,则它不起作用。任何建议,如何解决?

预先感谢,问候,乔纳斯

Adr*_*der 6

看一下

FIND_IN_SET

如果字符串str在由N个子字符串组成的字符串列表strlist中,则返回1到N范围内的值。字符串列表是由用“,”字符分隔的子字符串组成的字符串。如果第一个参数是常量字符串,第二个参数是SET类型的列,则将FIND_IN_SET()函数优化为使用位算术。如果str不在strlist中或strlist为空字符串,则返回0。