查询从具有特定条件的mysql中选择数据

时间:2015-01-28 23:40:29

标签: mysql

在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

3 个答案:

答案 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结尾。

存储这样的数据并不是最好的方法。你可能最好还有一个具有一对多关系的表。