我正在尝试创建搜索功能。
如果搜索输入字段是“foo bar”,我将其拆分为两个关键字,然后执行以下查询:
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%")
吗?