是否可以通过匹配模式来进行 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\/(.*)\/
就像使用正则表达式一样并返回上述记录。
一种解决方案显然是从数据库中获取所有记录,并在事后通过正则表达式进行搜索,但这对于大量记录来说是不可扩展的。理想情况下,我能够直接通过查询获取所有匹配的记录。
最佳答案
如果我理解正确,你可以使用正则表达式:
SELECT *
FROM url_stuff
WHERE '/user/gandalfthewhite' REGEXP url
关于mysql - 通过正则表达式匹配进行 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52637587/