0

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'、どのようなクエリになりますか?

4

2 に答える 2

1

私の問題を完全に解決する解決策を見つけましたが、将来誰かを助けるでしょう.

さて、クエリは次のようになります。

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

よろしく、ショアイブ。

于 2012-04-29T16:34:39.973 に答える
0

:) これに対する単純なクエリ

SELECT * FROM tablename1 WHERE category_id LIKE '%,3,%' AND postcode LIKE 'SW%'
于 2012-04-29T08:10:23.713 に答える