在MySQL中,我们可以使用此代码在列表之间选择具有ID号(或其他任何内容)的行:
SELECT * FROM TABLENAME WHERE prophrases IN (1,2,3,4,5,6)
多好啊!但如果我们需要搜索Field值的数字,我们能做什么? 例如,我有一个带有字段的表,名为“ prophases ”,我保存了这样的数据:
rowid / prophases
1 / 1,2,3,4,5,6,7,8
2 / 6,5,2,7,9,2
现在,我需要检查一下6号这样的数字是否在第1行的预言中! 我该怎么办?
类似的东西,但形式正确!
SELECT * FROM TABLENAME WHERE 6 IN prophrases
答案 0 :(得分:2)
你应该使用FIND_IN_SET()
SELECT rowid
FROM TABLENAME
WHERE FIND_IN_SET('6', prophrases)
答案 1 :(得分:0)
如果您只处理个位数
,这将有效 select * from tablename where prophrases like '%6%'
如果您的号码超过一位且逗号之间没有空格,这将有效。
select * from tablename where prophrases like '%,6,%' or prophrases like '6,%' or prophrases like '%,6'
答案 2 :(得分:0)
您需要使用类似的声明
SELECT * FROM TABLENAME WHERE prophrases LIKE '%6%'
但是,如果您有多个数字可能会导致一些意外结果,那么您可能需要修改它,如
SELECT * FROM TABLENAME
WHERE prophrases LIKE '%,6,%'
OR prophrases LIKE '6,%'
OR prophrases LIKE '%,6'
第一部分在逗号之间匹配6,第二部分在开头匹配6,后跟逗号,第三部分匹配逗号,后跟6结尾。
存储这样的数据并不是最好的方法。你可能最好还有一个具有一对多关系的表。