使用MySQL LIKE的正确语法?

时间:2012-07-31 02:41:01

标签: 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%' 
                 )
                                ) 
            )
         ...

作为参数,我想添加'%decke%',但如果我使用%%,MySQL会继续抛出错误。

知道我做错了吗?

我得到的错误是:

你的SQL语法有错误....在OR附近检查...%'%'decke%'(a.farbe LIKE'%decke%'...

1 个答案:

答案 0 :(得分:5)

对于通配符LIKE比较,你必须伪造它:

WHERE somefield LIKE CONCAT('%', ?, '%')

通配符“赞”是参数化查询在他们脸上平放的一个地方。