【发布时间】:2012-07-31 02:41:00
【问题描述】:
我有一堆 LIKE 语句的查询。我想优化/解释运行良好的查询。但是,如果我复制这个:
SELECT a.*, p.ek, p.vk, p.waehrung, p.onlinepreis
FROM arts a USE INDEX (i_aktiv, i_iln, i_marke )
LEFT JOIN pls p ON
p.iln = a.iln
LEFT JOIN fbs zu
ON a.farbe = zu.farbe
WHERE a.aktiv = "ja"
AND (
a.artikelbezeichnung LIKE ?
OR a.artikelbezeichnung_lang LIKE ?
OR ( a.farbe LIKE '%decke%'
OR zu.systemfarbe LIKE '%decke%'
OR zu.systemfarbe_en LIKE '%decke%'
)
)
)
...
我想添加'%decke%'作为参数,但如果我使用%%,MySQL会不断抛出错误。
知道我做错了什么吗?
我得到的错误是:
您的 SQL 语法有错误....检查附近... %'%'decke%' 在 OR (a.farbe LIKE '%decke%' ...
【问题讨论】:
-
错误是……究竟是什么?
-
我已经使用了这种精确的格式,它对我来说效果很好。
-
...嗯...现在可以了。我不明白为什么,可能是因为现在是凌晨 3 点,我有点失明......