搜索列PostgreSQL中的第一个字符
我想按字符表(括号表达式)搜索列中的第一个字符,但它会带来所有列字符,尽管有些客户的姓名以非字母开头 我使用PostgreSQL搜索列PostgreSQL中的第一个字符,sql,postgresql,Sql,Postgresql,我想按字符表(括号表达式)搜索列中的第一个字符,但它会带来所有列字符,尽管有些客户的姓名以非字母开头 我使用PostgreSQL SELECT name FROM customs WHERE name ~* '[a-z]' : 与模式不同,正则表达式可以匹配字符串中的任何位置,除非正则表达式显式锚定到字符串的开头或结尾 一些例子: 'abc' ~ 'abc' true 'abc' ~ '^a' true 'abc' ~ '(b|d)' true 'abc' ~ '^(b|c)'
SELECT name
FROM customs
WHERE name ~* '[a-z]'
:
与模式不同,正则表达式可以匹配字符串中的任何位置,除非正则表达式显式锚定到字符串的开头或结尾
一些例子:
'abc' ~ 'abc' true
'abc' ~ '^a' true
'abc' ~ '(b|d)' true
'abc' ~ '^(b|c)' false
如果只想在
name
开头进行匹配,也可以省去正则表达式匹配,只需执行以下操作:
where name < 'a' or name >= '{'
其中name<'a'或name>='{'
{
是ASCII图表中z
后面的神秘字符。注意:对于此解决方案或任何解决方案,您可能需要检查排序规则是否区分大小写
where name < 'a' or name >= '{'