如果我有一个列,其值以"%“开头,如下所示:
[ID]-----[VALUES]
1--------Amount
2--------Percentage
3--------%Amount
4--------%Percentage
如何使用"select“查询只有这两行?:
[ID]-----[VALUES]
3--------%Amount
4--------%Percentage
我尝试过这些查询,但它们不起作用:
select * from TABLE where VALUES like '[%]%'
select * from TABLE where VALUES like '\%%'
我知道在Java、C和其他语言中,backspace \让您使用一个愉快的字符作为普通字符,例如:
var s = "I called him and he sad: \"Hi, there!\"";
在SQL中有类似的字符/函数吗?
所有的答案都将不胜感激,谢谢你阅读这个问题!
发布于 2017-01-26 17:00:07
试试这个:
select * from TABLE where VALUES like '%[%]%'
发布于 2017-01-26 17:09:07
您的查询
select * from TABLE where VALUES like '\%%'
应该行得通。之所以没有这样做,是因为您可能启用了NO_BACKSLASH_ESCAPES
,这会将\
视为一个文字字符。
避免这种情况的一种方法是使用LIKE BINARY
select * from TABLE where VALUES like binary '%'
或者使用转义字符(可以是您选择的任何字符)规范。
select * from TABLE where VALUES like '~%%' escape '~'
发布于 2017-01-26 16:59:16
在ESCAPE
上有一个LIKE
选项
select *
from TABLE
where VALUES like '$%%' escape '$';
转义字符后面的任何内容都被视为常规字符。但是,默认情况下是反斜杠(请参阅这里),因此反斜杠的版本应该做您想做的事情。
当然,您也可以使用正则表达式(尽管这没有希望使用索引)。
注意:escape
是答案标准的一部分,所以它应该在任何数据库中工作。
https://stackoverflow.com/questions/41878773
复制相似问题