我需要有一个包含两部分的查询。 我的意思是两条where子句。将mysql中CSV列的值与更多检查进行比较
到现在我已经达到以下内容,但它这么想的正常工作。
SELECT * from items
where
FIND_IN_SET('3', category_id)
AND postcode LIKE 'sw19%'
order by id
该查询仅运行第一部分,即FIND_IN_SET()
部分。而只是忽略了第二部分,即邮编检查...
我想知道的是有没有这种类型的查询的解决方案。
详情
我想的值从2列比较:
1列是一个csv塔,例如。 1,2,3,4,5
另一个是邮政编码B17 SW19等
表是像下面这样。
---+------+-------------+----------+- id | item | category_id | postcode | ---+------+-------------+----------+- 1 | abc | 1,2,3,4 | SW19 | ---+------+-------------+----------+- 2 | def | 3,4,5 | NW6 | ---+------+-------------+----------+- 3 | xyz | 6,7,8,9 | SW19 | ---+------+-------------+----------+- 4 | ghi | 8,9,10,11 | SW19 | ---+------+-------------+----------+-
等
,如果我要选择其category_id
包含'3'
一个条目,其邮政编码从'SW'
启动时,它会是怎样查询?此
SELECT * FROM tablename1 WHERE category_id LIKE '%,3,%' AND postcode LIKE 'SW%'
但是你现有的SQL工作正常(它不会返回'id = 2',其中'postcode ='NW6'')!请参阅[我的sqlfiddle](http://sqlfiddle.com/#!2/530df/1) – eggyal 2012-04-29 13:45:12