У меня есть таблица вроде этого:
// routes
+----+-----------------------------+
| id | route |
+----+-----------------------------+
| 1 | /tracking_code/expire/{id} |
| 2 | /tracking_code/list |
+----+-----------------------------+
{}
означает динамическое значение. И мне нужно сопоставить первую строку для этого входного значения: /tracking_code/expire/2
. Думаю, мне нужно использовать регулярное выражение. Любая идея, как я могу это сделать?
В моем текущем обходном пути используется предложение LIKE
следующим образом:
SELECT * FROM routes WHERE route LIKE :entry%
Также я должен удалить этот номер конца записи, например /tracking_code/expire/
.
К сожалению, мой подход не будет работать для сложных маршрутов, таких как: /tracking_code/expire/{id}/temp
. Во всяком случае, как мне использовать regexp для этого?
Вы можете использовать RLIKE, как это
SELECT * FROM routes WHERE route RLIKE '^.*[0-9]+.*$'
для замены с помощью regex я не думаю, что это возможно, но есть некоторые подлые способы, прочитайте это сообщение здесь. Как заменить регулярное выражение в MySQL?