Flutter 项目,使用 REGEXP 进行数据库查询导致 iPhone 上的 DatabaseException

Flutter project, database query with REGEXP causes DatabaseException on iPhone

提问人:androidneil 提问时间:2/22/2022 更新时间:10/19/2023 访问量:96

问:

我的 flutter 应用程序使用 SQLite 数据库,使用 sqlfite 插件:

sqflite: ^2.0.2

我的一个查询使用了 REGEXP 函数。我正在 Android 上进行开发和测试,没有任何问题。但是,在 iPhone 上测试应用程序时,我收到以下致命错误:

DatabaseException(Error Domain=FMDatabase Code=1 "no such function: REGEXP" UserInfo={NSLocalizedDescription=no such function: REGEXP})

我能做些什么来使 REGEXP 函数在 iPhone 上可用,或者我必须找到一种不同的方法来编码我的查询?

安卓 iPhone Flutter SQLite

评论


答:

0赞 androidneil 2/23/2022 #1

好吧,似乎 REGEXP 直到最近才被 sqlite 正式认可,因此您不能保证不同的平台能够使用该功能。

0赞 Gad D Lord 10/19/2023 #2

可能 sqlite 二进制文件是在不支持 RegExp 的情况下构建的。这通常作为外部命令提供,编译为外部函数并在运行时注册。

检查问题:https://github.com/tekartik/sqflite/issues/922

检查解决方案:C 语言的 SQLite 并支持 REGEXP