select * from t where x like '%|_%' escape '|';

返回包含有"_"的记录,正确

select * from t where x like '%*_%' escape '*';

返回包含有"_"的记录,正确

2)使用instr函数辅助判断

使用instr函数判断字段中是否包含“_”,如果包含返回值是非零的,如果不包含则返回值是零。

select * from t where instr(x,'_')!=0;

以上适用于结构化数据库MySQL,SQLServer,Oracle等

_ 下划线 通配符:表示只能 匹配 单个字符, 不能 多也 不能 少,就是一个字符. like操作符: LIKE作用是指示my sql 后面的 搜索 模式是利用通配符而不是直接相等 匹配 进行比较. 注意: 如果在使用like操作符时,后面的没有使用通用 匹配 符效果是和=一致的,SELECT * FROM products WHERE products.prod_name like ‘1000’;只能 匹配 的结果为1000,而 不能 匹配 像JetPack 1000这样的结果. 1)%通配符使用: 匹配 以”yves”开头的记录:(包括记录”yves”) 在 sql server的like 下划线 类似于通配符%,所以无法使用like '%_%'来 匹配 下划线 ,可以通过以下两种办法实现 匹配 下划线 1.使用转义字符escape like '%\_%' escape '\' like '%|_%' escape '|'这里的escape就是将 查询是 SQL Server 重要的功能,而在查询 将Like用上,可以 搜索 到一些意想不到的结果和效果,like的神奇之处在于其提供的模糊查询功能,通过与它相 匹配 的四大类通配符,like放在条件 起到画龙点睛的作用。   一、一般 搜索 条件 用Like   可与LIKE配对的数据类型主要是字符串、日期或时间值。LIKE 关键字可以使用常规表达式包含上面三种类型数据,这些数据字符串 可包含下面四种通配符的任意组合。   通配符 含义   % 包含零个或更多字符的任意字符串。   _( 下划线 ) 任何单个字符。   [ ] 指定范围(例如 [a-f])或集合(例如 [abcdef])内的任何 my sql > select * from test_collection where name like '%t1_%'; +----+---------+------+---------+ | id | name    | note | status  | +----+---------+------+---------+ | 51 | t1_dd   | t1   | enabled |... 如果想检索出字段 包含 下划线 “_”的内容,该如何书写 SQL 语句呢?之所以问这个问题,是因为在Oracle 下划线 在like 有着特殊的含义,它表示 匹配 任意一个字符。因此在查询包含 下划线 内容的时候需要“特殊关照”一下。既然被问到了... 使用 SQL Server,使用like '%_%'这样的语句想要 匹配 下划线 ,结果查询不到结果。 是因为 SQL Server的like 下划线 类似于通配符%,就 不能 用以上的语句来 匹配 ,要想 匹配 下划线 可用如下两种方法:   1.使用escape转义字符,escape是将后面的字符指定为转义字符,可用任意字符来做转义字符     like '%\_%' escape '\' 在开发 ,测试提出了一个bug,在某 搜索 搜索 _,结果把不包含 下划线 的内容也查了出来!这是什么问题呢?今天特此记录一下,顺便给大家分享下! 原 sql :select * from table where condition like '%_%'; 结果: 搜索 出来的是全部。 原来,在my sql 下划线 _ 代表 全部 基本上等同于 *。 2、解决方案: 对 sql 用 \ 进行转义 最终达到的 sql 效果 :select * from table where condition. 在 sql 结构化查询语言 ,like语句有着至关重要的作用。 like语句的语法格式是:select*from表名where字段名 like 对应值(子串),它主要是针对字符型字段的,它的作用是在一个字符型字段列 检索包含对应子串的。 A:% 包含零个或多个字符的任意字符串: 1、like'Mc%' 将 搜索 以字母 Mc 开头的所有字符串(如 McBadden)。 2、like... select * from student where sname like ‘%张%’; 2、查询名字以张开头的学生信息 select * from student where sname like ‘张%’; 3、查询名字以人结尾的学生信息 select * from student where sname like ‘%人’; 4、查询名字 第二个字为心的