我有一个这样的表:
// 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
。不管怎样,我应该如何使用正则表达式呢?
最佳答案
您可以使用RLIKE像这样
SELECT * FROM routes WHERE route RLIKE '^.*[0-9]+.*$'
要替换使用正则表达式,我认为这是不可能的,但是有一些偷偷摸摸的方法,请在此处阅读这篇文章 How to do a regular expression replace in MySQL?
关于mysql - 如何匹配数据库中的动态路由?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47726705/