我需要一个包含两个部分的查询。
我的意思是两个where子句。

到现在为止,我已经达到以下目的,但是它不能正常工作。

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 |项目| category_id |邮政编码|
--- + ------ + ------------- + ---------- +-
 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 table_name where FIND_IN_SET('3', category_id) >0 AND postcode LIKE 'sw%'


问候,
Shoaib。

09-06 11:00