mysql - 如何匹配数据库中的动态路由?

标签 mysql sql regex

我有一个这样的表:

// 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/

相关文章:

mysql - 如何使用 0000-00-00 00 :00:00 value? 将日期时间设置为 NULL

c# - 我如何在 visual studio 2012 中更正 wpf datagrid 列名称冗余

sql - 具有最大限制的运行总计

c# - 用于删除 XML 标记及其内容的正则表达式

mysql - 如何将 SQL 不同的查询结果连接成一个字符串?

mysql - "chown mysql:mysql/data/tmp"命令

php - 我正在尝试在 Laravel 中混合数据透视表值

sql - 是否有一个Oracle SQL查询将多行汇总为一行?

php - 我正在尝试拆分/分解/preg_split 一个字符串,但我想保留分隔符

python - 是否可以在打印之前清理冗长的 python 正则表达式?