10

検索機能を作ろうとしています。

検索入力フィールドが「foo bar」の場合、それを 2 つのキーワードに分割してから、次のクエリを実行します。

SELECT p.* FROM p_extra_fields as x INNER JOIN products as p ON x.product = p.id
  WHERE x.type = "1"
  AND
  (
     (x.key = "model" AND x.value LIKE "%foo%")
  OR (x.key = "model" AND x.value LIKE "%bar%")
  OR (x.key = "color" AND x.value LIKE "%foo%")
  OR (x.key = "color" AND x.value LIKE "%bar%")
  OR (x.key = "make" AND x.value LIKE "%foo%")
  OR (x.key = "make" AND x.value LIKE "%bar%")
  )      

GROUP BY x.product LIMIT 0, 50

キーワードの数はもっと多いかもしれないので、もっと「いいね」が必要かもしれません。また、「キー」の数を増やすことができます:)

このクエリを単純化する方法はありますか? のようなことはできますLIKE("%foo%", "%bar%")か?

4

3 に答える 3