Похоже, вам нужно иметь новый синтаксис в базе данных, где URL-адреса содержат заполнители, которые вы передадите в код замены переменных на основе php (sprintf), но при этом сможете выполнять исходные сравнения, чтобы соответствовать URL.
Если я правильно понимаю, вы хотите использовать новый формат URL
/article/{{slug}}/page/{{page_no}}
и сопоставьте его с чем-то вроде
/article/my-article/page/2
Упомянутые саги preg plugin могут выполнить необходимую замену, которая превратит один из ваших недавно отформатированных URL в исходный формат, который вы использовали для определения соответствия с использованием синтаксиса LIKE. Следующий запрос:
SELECT PREG_REPLACE('/({{.*?}})/', '%', `url`) FROM urls;
Превратит новый URL (/ article / {{slug}} / page / {{page_no}}) в исходное значение
/article/%/page/%
, который затем может быть возвращен через ваш исходный запрос, примерно так:
SELECT * FROM urls
WHERE '/article/my-article/page/2' LIKE preg_replace('/({{.*?}})/', '%', `url`);
В некоторых бинарных дистрибутивах, таких как MAMP, XAMMP и т. Д., Плагин уже установлен, но он не установлен на многих системах, таких как Macports / Ubuntu. Вот пара статей об установке плагина preg. Надеюсь, это поможет.
http://quickshiftin.com/blog/2011/04/installing-mysql-preg-plugin-osx-macports/
http://quickshiftin.com/blog/2011/12/installing-the-mysql-preg-plugin-on-ubuntu-with-apt-get/