为什么REGEXP2在SQLite上出现语法错误?

时间:2014-01-15 16:43:21

标签: regex sqlite user-defined-functions

我定义了2个函数:

sqlite3_create_function( m_db.db(), "regexp", 2, SQLITE_UTF8, NULL, mysqlite_regexp, NULL, NULL );
sqlite3_create_function( m_db.db(), "regexp2", 2, SQLITE_UTF8, NULL, mysqlite_regexp2, NULL, NULL ) ;

如果我查询SELECT Images.ImageID FROM Images WHERE Images.Filename REGEXP \"truc\"这样的查询,只有REGEXP可以使用。

使用REGEXP2我有错误,“靠近REGEXP2:语法错误”

为什么?

1 个答案:

答案 0 :(得分:2)

REGEXP operator定义为重定向到regexp用户功能。

GLOB以外,没有其他运算符以这种方式定义。 如果要调用其他函数,则必须将它们称为函数:

SELECT ImageID FROM Images WHERE regexp('truc', Filename);
SELECT ImageID FROM Images WHERE regexp2('truc', Filename);