ibm1620 has asked for the wisdom of the Perl Monks concerning the following question:
I discovered that, without installing anything other than DBD::SQLite (version 1.76), I was able to run a SELECT using a REGEXP in the WHERE clause. All of the searching I'd turned up had suggested that built-in REGEXP support in SQLite was either non-existent or limited to the CLI, and that I'd have to install one of several available regex libraries.
I tested against a table of 11M movie titles, in which the title column was indexed. While REGEXP worked, it was considerably slower than LIKE in the following queries:
I can't find any documentation for this! Could anyone provide some links? And, why is REGEXP so much slower?SELECT * FROM Titles WHERE title LIKE '%batman%'; -- 1.3 sec SELECT * FROM Titles WHERE title REGEXP '(?i)\bbatman\b'; -- 5.9 sec SELECT * FROM Titles WHERE title REGEXP '(?i)\b{wb}batman\b{wb}'; -- 1 +1.0 sec !!
|
---|