PostgreSQL LIKE 子句中的正则表达式
此查询旨在匹配以“00”开头且第三个字符不同于“0”的值”,如“0090D0DF143A”。但是,以下查询无法匹配:
SELECT * FROM table WHERE value LIKE '00[1-9]%'
要解决此问题,请考虑在 LIKE 子句外部使用正则表达式运算符“~”以及括号表达式。但是,为了获得最佳性能,建议结合使用 LIKE 和 NOT LIKE 子句:
SELECT * FROM tbl WHERE value LIKE '00%' AND value NOT LIKE '000%'
LIKE 子句有效地缩小了与左锚定表达式的潜在匹配范围,而 NOT LIKE 子句则进一步细化了左锚定表达式的潜在匹配范围。结果。 Postgres 可以利用此类表达式的索引,从而加快查询执行速度。
此外,在正则表达式中使用“^”将模式锚定到字符串的开头并使用括号表达式“”至关重要1' 匹配除'0'。
以上是如何高效地查询 PostgreSQL 中以'00”开头且第三个字符非零的值?的详细内容。更多信息请关注PHP中文网其他相关文章!