我的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 上可用,还是我必须找到一种不同的方式来编码我的查询?
好吧,看来 REGEXP 直到最近才被 sqlite 正式认可,因此您不能保证不同的平台都能够使用该功能。
sqlite 二进制文件可能是在不支持 RegExp 的情况下构建的。这通常是作为外部命令编译为外部函数并在运行时注册的。
检查问题: https://github.com/tekartik/sqflite/issues/922
检查解决方案: C 语言的 SQLite 并支持 REGEXP