【发布时间】:2015-03-26 02:14:35
【问题描述】:
我需要一个 SELECT 语句,它将返回给定字段包含百分号 (%) 的所有行。
我尝试了以下方法,但它只是提取了所有记录:
select * from MyTable where MyColumn LIKE '%%%'
【问题讨论】:
标签: sql-server
我需要一个 SELECT 语句,它将返回给定字段包含百分号 (%) 的所有行。
我尝试了以下方法,但它只是提取了所有记录:
select * from MyTable where MyColumn LIKE '%%%'
【问题讨论】:
标签: sql-server
使用[]括号符号转义
select * from MyTable where MyColumn LIKE '%[%]%'
或使用 ESCAPE 关键字
select * from MyTable where MyColumn LIKE '%\%%' ESCAPE '\'
【讨论】:
' 可以通过在其前面再添加一个来转义。例如,''
您可以使用此搜索任何特殊字符
SELECT * FROM mytable WHERE email LIKE '%[^0-9a-zA-Z @\.\-]%'
【讨论】:
有两种方法可以避开这些通配符。
您可以像这样使用默认的方括号“[]”-[%] 或 [_]
您可以通过在 where 子句末尾使用关键字 ESCAPE 来定义自己的转义字符。
例如。 select * from name_column where name like ‘gyan_sagar’ ESCAPE ‘\’
在上面的示例中,我们通过使用 ESCAPE 关键字将“\”定义为转义字符来转义“_”。
注意:转义只能定义一个字符,不能定义字符串。
【讨论】: