将mysql中CSV列的值与更多检查进行比较

时间:2012-04-29 07:47:31

标签: mysql csv sql-like

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

到目前为止,我已经达到了以下目标,但它已经正常工作了。

SELECT * from items
where
      FIND_IN_SET( '3', category_id )
  AND postcode LIKE 'sw19%'
order by id

此查询仅运行第一部分,即FIND_IN_SET()部分。并忽略第二部分,即邮政编码检查...

我想知道这种查询是否有解决方案。

详情

我想比较两列中的值:

  • 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'开始的条目,那将是什么查询?

2 个答案:

答案 0 :(得分:1)

我刚刚找到了解决方案,它完全解决了我的问题,虽然它将来有助于某人。

嗯,查询是这样的:

Select * from table_name where FIND_IN_SET('3', category_id) >0 AND postcode LIKE 'sw%'

此致 邻省。

答案 1 :(得分:0)

:)只是简单查询一下

SELECT * FROM tablename1 WHERE category_id LIKE '%,3,%' AND postcode LIKE 'SW%'