create table T(col varchar(100)) insert T select 'abc' insert T select 'abc%bac' insert T select 'abc%' insert T select 'ab%%c'select * from T where col like '%\%%' escape '\'--result col ----------------------- abc%bac abc% ab%%c(3 row(s) affected)
楼上正解 而且不止%,还有几个都需要 key_work=replace(replace(replace(replace(replace(replace(replace(replace(key_work,"*","[*]"),"?","[?]"),"[","[[]"),"-","[-]"),"#","[#]"),"%","[%]"),"^","[^]"),"_","[_]")select * from table where column like '%"& key_work &"%'
insert T select 'abc'
insert T select 'abc%bac'
insert T select 'abc%'
insert T select 'ab%%c'select * from T
where col like '%\%%'
escape '\'--result
col
-----------------------
abc%bac
abc%
ab%%c(3 row(s) affected)
允许在字符串中搜索通配符而不是将其作为通配符使用。escape_character 是放在通配符前表示此特殊用途的字符。
而且不止%,还有几个都需要
key_work=replace(replace(replace(replace(replace(replace(replace(replace(key_work,"*","[*]"),"?","[?]"),"[","[[]"),"-","[-]"),"#","[#]"),"%","[%]"),"^","[^]"),"_","[_]")select * from table where column like '%"& key_work &"%'