fre*_*ent 0 mysql select sql-like
我有一堆LIKE状态查询.我想optizimze /解释查询,运行正常.但是,如果我复制这个:
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%'
)
)
)
...
Run Code Online (Sandbox Code Playgroud)
作为我想要添加的参数,'%decke%'但MySQL不断抛出错误,如果我使用的话%%.
知道我做错了什么吗?
我得到的错误是:
你的SQL语法有错误....在OR附近检查...%'%'decke%'(a.farbe LIKE'%decke%'...
对于通配的LIKE比较,你必须伪造它:
WHERE somefield LIKE CONCAT('%', ?, '%')
Run Code Online (Sandbox Code Playgroud)
通配符"喜欢"是参数化查询在他们的脸上平放的一个地方.
| 归档时间: |
|
| 查看次数: |
559 次 |
| 最近记录: |