通过regex匹配进行sql查询

bhmjp9jg  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(378)

是否可以通过匹配模式进行sql查询?我知道sql允许使用通配符,但我认为它们不适合我的用例。
假设我有一个包含以下记录的表(这里用json表示):
表名:url\u stuff

{
    id: 2
    path: \/user\/(.*)\/
    value: "I am the user path"
}

然后假设我有以下表示url路径的字符串:

/user/gandalfthewhite

我想做一个返回此记录的查询。

SELECT * FROM url_stuff WHERE path LIKE '/user/gandalfthewhite'

显然这是行不通的,但是也许有其他方法可以使用sql /user/gandalfthewhite 比赛 \/user\/(.*)\/ 与regex一样,返回上述记录。
一种解决方案显然是从数据库中获取所有记录,并在事后通过regex进行搜索,但这对于大量记录来说是不可伸缩的。理想情况下,我可以通过查询直接获取所有匹配的记录。

wtzytmuj

wtzytmuj1#

如果我理解正确,您可以使用regexp:

SELECT *
FROM url_stuff
WHERE '/user/gandalfthewhite' REGEXP url

相关问题