Mysql选择查询多个值

时间:2013-10-24 13:40:34

标签: mysql sql

我正在写一个类似的查询:

select * 
from table 
where cityid=2

但问题出在我的数据库中,cityid存储为(1,2,3)多个城市 这个查询没有给我想要的结果。

3 个答案:

答案 0 :(得分:2)

试试这个:如果 val 是你的参数

Select 
*
from table 
where cityId like 'val,%' 
or cityId like '%,val,%' 
or cityId like '%,val'

答案 1 :(得分:1)

你可以使用MySQL的FIND_IN_SET()

SELECT * FROM table WHERE FIND_IN_SET(2, cityid) > 0;

但是,我实际上建议您将表格的架构更改为而不是在单个单元格中存储多个关联。您可以使用映射关系的第二个表(想想create table table_cities (table_id int, city_id int);)然后使用join来提取值来完成此操作:

SELECT
    t.*
FROM
    table t
    JOIN table_cities tc
        ON t.id = tc.table_id
WHERE
    tc.city_id = 2;

答案 2 :(得分:0)

不确定我是否正确理解您的要求。根据我的理解,试试这个:

select * from table where cityid like '%,2,%';