Пользовательская функция REGEXP, которая будет использоваться в SQLITE SELECT Statement

У меня есть файл базы данных SQLITE, который в одном из столбцов таблицы содержит несколько простых регулярных выражений.

Эти выражения – это что-то вроде / foo (. ?) Или / foo / bar / (.?) И так далее …

Ну, когда мы пытаемся сопоставить некоторый текст с обычным шаблоном, в PHP мы делаем:

preg_match ($ pattern, $ target, $ matches)

Очевидно, что замена переменных на содержимое.

То, что я хотел бы сделать, это отправить ANY STRING как значение предложения WHERE и, при поиске файла базы данных SQLITE, использовать каждый из сохраненных регулярных выражений для соответствия шаблону в данной строке.

Я думаю, что с помощью PHP sqlite_create_function () я могу создать какую-то рутину для этого, но я точно не знаю, как это происходит, поскольку я впервые использую SQLITE.

Если вы заинтересованы, это часть MVC Routing Framework, которую я разрабатываю.

Заранее большое спасибо.

Здесь вы можете использовать документацию SQLiteDatabase::createFunction или документацию PDO::sqliteCreateFunction здесь

Я сделал что-то вроде этого:

 <?php function _sqliteRegexp($string, $pattern) { if(preg_match('/^'.$pattern.'$/i', $string)) { return true; } return false; } $PDO->sqliteCreateFunction('regexp', '_sqliteRegexp', 2); ?> 

Использование:

 SELECT route FROM routes WHERE pattern REGEXP 'your/url/string' LIMIT 1 

Это то, что вы ищите?

 eg SELECT * FROM `my_table` WHERE `my_column` REGEXP "\/foo(.?)"