【发布时间】:2017-02-27 22:52:12
【问题描述】:
我知道我们可以在 SQL 查询中使用 LIKE 谓词来查找具有字母数字和特殊字符的行(WHERE desc LIKE '%#%')。但是如何找到包含“%”符号的行呢? (WHERE desc LIKE '%%%' 返回所有行)。
【问题讨论】:
-
你在用什么rdbms?
-
你研究过这个吗?用谷歌快速搜索似乎很容易找到答案。
标签: sql
我知道我们可以在 SQL 查询中使用 LIKE 谓词来查找具有字母数字和特殊字符的行(WHERE desc LIKE '%#%')。但是如何找到包含“%”符号的行呢? (WHERE desc LIKE '%%%' 返回所有行)。
【问题讨论】:
标签: sql
这取决于您的数据库引擎。\% 是 MySQL 和 Oracle 中 % 的转义字符。
WHERE desc LIKE '%\%%'
【讨论】:
转义字符在 SQL Server 中很难遵循。把它变成文字
WHERE desc LIKE '%[%]%'
根据"Using Wildcard Characters As Literals"部分
要将通配符用作文字字符,请将通配符括在方括号中。
【讨论】:
ANSI SQL 允许您使用 escape 子句指定转义字符,例如
where desc like '%\%%' escape '\'
【讨论】: