我正在尝试使用like语句查询表。 _
被认为是postgres中的通配符吗?将
select * from table where field1 like '%_123_%'
返回与
相同的内容select * from table where field1 like '%123%'
答案 0 :(得分:2)
以下是Postgres中有关通配符的官方文档中的示例:
'abc' LIKE 'abc' true
'abc' LIKE 'a%' true
'abc' LIKE '_b_' true
'abc' LIKE 'c' false
_是一个字符的通配符,而%是多个字符的通配符。
答案 1 :(得分:2)
是的,_
是一个匹配一个字符的通配符。它不能是空匹配,所以不,那些陈述不一样。第一个要求字符串长度至少为5个字符,而第二个字符串只要求3个字符。
如果您熟悉正则表达式,%123%
相当于.*123.*
,而%_123_%
相当于.+123.+
。
要匹配文字下划线或百分号而不匹配其他字符, pattern 中的相应字符必须以转义字符开头。默认转义字符是反斜杠,但可以使用
ESCAPE
子句选择不同的转义字符。要匹配转义字符本身,请写两个转义字符。
答案 2 :(得分:1)
_匹配一个字符,而%匹配大量字符。