gpt4 book ai didi

MySQL 正则表达式行为

转载 作者:行者123 更新时间:2023-11-30 22:32:45 25 4
gpt4 key购买 nike

我有一个带有列路径的表 access_rules。我在表中添加了一行:

INSERT INTO access_rules (path) VALUES ('/user/search/*'), ('/user'), ('/someotherpath')

现在,我执行了一个查询:

SELECT * FROM `access_rules` where '/user/search/ddd' regexp path 

我想返回/user/search/*,但查询同时返回了 '/user/search/*''/user'。谁能告诉我为什么会这样?

最佳答案

/user^.*/useruser.*$ 相同。即 任何 都可以存在于 /user 之前或之后以进行匹配。

同时,/user/search/* 匹配/user/search//////user/search。可能不是你想要的。您可能需要 .* 而不是 *.

因为你好像只有'prefix'匹配,所以我建议你改成

WHERE '...' LIKE CONCAT(path, '%')

如果 /user 应该是一个“精确”匹配,那将不起作用。在这种情况下,切换到

INSERT INTO access_rules (path)
VALUES ('/user/search/%'), -- note the change here
('/user'),
('/someotherpath')
SELECT * FROM `access_rules` where '/user/search/ddd'
LIKE path -- note LIKE, not REGEXP

关于MySQL 正则表达式行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33433757/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com