2つの部分からなるクエリが必要です。 私は2つのwhere節を意味します。mysqlのCSV列の値とより多くのチェックを比較する
今まで私は以下に達しましたが、正しく動作しません。
SELECT * from items
where
FIND_IN_SET('3', category_id)
AND postcode LIKE 'sw19%'
order by id
このクエリでは、最初の部分、つまりFIND_IN_SET()
部分のみが実行されます。 2番目の部分、つまり郵便番号のチェックを無視します。
私は知りたいのは、この種のクエリの解決策です。
DETAILS
私は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'
から始まり、それがどのようなクエリになりますか?
しかし、あなたの既存のSQLはうまく動作します( 'id = 2'、' postcode = 'NW6''を返します)! [my sqlfiddle](http://sqlfiddle.com/#!2/530df/1)を参照してください – eggyal