如何在sqlite中使用regexp

时间:2014-06-04 12:51:29

标签: regex android-sqlite

请提示,如何在SQLite中使用REGEXP?

实现:

SELECT field FROM table WHERE field REGEXP '123'

它不起作用。 Error: no such function: REGEXP

2 个答案:

答案 0 :(得分:7)

目前正在为Ubuntu 12.04中的Web应用程序开发sqlite3 + php。我也遇到了同样的问题然后经过研究我发现我们需要为sqlite3安装一个pcre软件包。我们在这里如何

  1. apt-get install sqlite3-pcre
  2. 然后转到sqlite3命令行sqlite3 test.db
  3. 运行命令.load /usr/lib/sqlite3/pcre.so
  4. 测试:SELECT url FROM table_name where url REGEXP '^google.*';
  5. 遵循这3个步骤后,我的工作正常。 如果对此有误,请纠正我。 我希望它会对你有所帮助

    谢谢

答案 1 :(得分:6)

你无法使用它。

首先,根据documentation

,您需要一个实现它的函数
  

REGEXP运算符是regexp()用户函数的特殊语法。默认情况下没有定义regexp()用户函数,因此使用REGEXP运算符通常会导致错误消息。如果在运行时添加了名为“regexp”的应用程序定义的SQL函数,则“X REGEXP Y”运算符将实现为对“regexp(Y,X)”的调用。

无法在Android SQLite中安装用户定义的函数。

考虑是否可以将您的正则表达式编写为GLOBLIKE模式。