文件名如'%_123456_%'

时间:2013-12-12 14:03:40

标签: sql postgresql

我正在尝试使用like语句查询表。 _被认为是postgres中的通配符吗?将

select * from table where field1 like '%_123_%'

返回与

相同的内容
select * from table where field1 like '%123%'

3 个答案:

答案 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.+

来自PostgreSQL manual

  

要匹配文字下划线或百分号而不匹配其他字符, pattern 中的相应字符必须以转义字符开头。默认转义字符是反斜杠,但可以使用ESCAPE子句选择不同的转义字符。要匹配转义字符本身,请写两个转义字符。

答案 2 :(得分:1)

是的

_匹配一个字符,而%匹配大量字符。