在使用 PostgreSQL 中,如何实现类似 startswith 的前缀匹配,可以借助 like
实现,也可以结合 ~
关键字和正则表达式实现。
推荐方式
在 sql 中,%
表示匹配任何字符 0 次或多次,它结合 like
一起使用,主要有两种形式:
R%
匹配以 R 开头的字符串;%R
匹配以 R 结尾的字符串。
假若要匹配 content 字段中,以 <div> 开头的所有数据,具体示例如下:
SELECT * FROM article WHERE content LIKE '<div>%'
这里需要注意的是,like 语句大小写敏感,如果要忽略大小写,可以使用 ilike。
另一种方式,可以利用正则表达式,需要 ~
关键字,示例如下:
SELECT * FROM article WHERE content ~ '^[R]{1}[\s\w]*$'