问题描述
我正在 Postgres 上运行这部分查询,并且运行良好
where column ~ '^[0-9]'
但是当我尝试在 sqlite 中运行它时,出现此错误:
“~”附近:语法错误
你知道我如何在 sqlite 中运行这个函数吗?
解决方法
实际上,如果您想要以数字开头的列,您可以简单地使用:
where substr(column,1,1) between '0' and '9'
SQLite 没有对正则表达式的原生支持——尽管它真的很容易扩展。它确实使用支持 Unix globbing,但在这种情况下,您可以使用内置函数。
,
SQLite 支持 GLOB
运算符:
WHERE column GLOB '[0-9]*'
[0-9]
表示该值以数字开头,*
表示可以跟在任何字符之后。