2 つの部分を持つクエリが必要です。つまり、2 つの where 句です。
今まで以下にたどり着きましたが、うまくいきません。
SELECT * from items
where
FIND_IN_SET( '3', category_id )
AND postcode LIKE 'sw19%'
order by id
このクエリは、最初の部分、つまり部分のみを実行しますFIND_IN_SET()
。2番目の部分、つまり郵便番号チェックを無視するだけです...
この種のクエリの解決策があるかどうかを知りたいです。
詳細
2 つの列の値を比較したい:
1 列は csv 列です。1,2,3,4,5
もう1つは郵便番号B17 SW19などです
表は以下のようなものです。
---+------+-------------+----------+- ID | アイテム | カテゴリ ID | 郵便番号 | ---+------+-------------+----------+- 1 | abc | 1,2,3,4 | SW19 | ---+------+-------------+----------+- 2 | デフ | 3,4,5 | NW6 | ---+------+-------------+----------+- 3 | xyz | 6,7,8,9 | SW19 | ---+------+-------------+----------+- 4 | ギ | 8,9,10,11 | SW19 | ---+------+-------------+----------+-
等
category_id
を含み'3'
、郵便番号が から始まるエントリを選択したい場合'SW'
、どのようなクエリになりますか?