是否可以通过匹配模式进行SQL查询?我知道SQL允许使用通配符,但我认为它们不适合我的用例。
假设我有一个包含以下记录的表(以JSON表示):
表名称: url_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\/(.*)\/
匹配正则表达式并返回上面的记录。
显然,一种解决方案是从数据库中获取所有记录,然后在事后通过正则表达式进行搜索,但这对于大量记录而言不可扩展。理想情况下,我可以直接通过查询获取所有匹配的记录。
答案 0 :(得分:1)
如果我理解正确,则可以使用regexp:
SELECT *
FROM url_stuff
WHERE '/user/gandalfthewhite' REGEXP url