検索機能を作ろうとしています。
検索入力フィールドが「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%")
か?