您的位置:首页 > 数据库 > Oracle

oracle使用like匹配特殊字符解决办法

2017-02-16 00:39 169 查看


想要匹配出所有MC带有 "_" 的数据,

select * from lm where mc like '%_%' ;

这是一种错误的写法,因为 oracle会默认把  '_' 作为一个可以匹配任意一个字符的通配符。

正确写法:
select * from lm where mc like '%\_%'escape '\';
语法:like '%\_%' escape'\', 其中第一个 '\'  代表转义紧跟后一位的特殊字符(多个特殊字符需要写多个'\'进行转义), escape关键字 代表查询时过滤掉 '\' 这个字符。也就是说先用 '\'转义特殊字符,查询的时候再用 escape 关键字过滤掉 '\'。由于 '\'在程序中也是特殊字符,所以也需要进行转义。
String sql = "select * from lm where mc like '%\\_%' escape '\\'";


以此类推,其他特殊字符也可以使用 '\' 进行转义。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐