在使用mysql的like关键字做模糊匹配查询时,如果输入的目标字符串中包含下划线_以及%时,会发现无法正确匹配查询。这是因为在mysql语句中_和%都是作为通配符来使用的。其中,_表示匹配任意一个字符,而%代表匹配任意多个字符。所以我们输入的目标字符串包含这两个字符时要对其进行转义,并且要用escape关键字进行标注。
示例代码:
SELECT * FROM t_user t WHERE t.name LIKE 'yao/_ming' ESCAPE '/'
SELECT * FROM t_user t WHERE t.id LIKE '%739/%508%' ESCAPE '/'
escape标注后,转义字符后面的_和%就不作为通配符了,而是作为一般字符串进行对待。
注意:在目标字符串中_和%的前面也一定要加/ ,只加ESCAPE '/' ,_和%仍然是通配符。