gpt4 book ai didi

mysql - RLIKE/REGEXP 和 LIKE 的等价性 - 匹配整个字符串与任意子字符串

转载 作者:行者123 更新时间:2023-11-29 06:12:42 27 4
gpt4 key购买 nike

我有两个问题。

SELECT count(AlbumID)
FROM album
WHERE albumname like '%[%]';

结果:1​​5733

SELECT count(AlbumName)
FROM album
WHERE AlbumName RLIKE '.*\\[.*\\]';

结果:1​​5740

正如您所见,like 返回的元素比 rlike 少 7 个。我有两个问题,为什么会这样?语句不一样吗?如果我正在寻找包含 Result: Artist - Song [Live]Result: Artist- Song [Gold CD, Excplicit Lyrics] 的名称,那么将查询什么返回正确的结果?

最佳答案

的精确等价
LIKE '%[%]' 

REGEXP '^.*\\[.*\\]$'

(注意 RLIKE 只是一个 mSQL'ish synonym of REGEXP )。简而言之,这意味着 LIKE 始终匹配整个字符串,而 REGEXPRLIKE 可能匹配任何子字符串。

这就是为什么我会假设周围显然有七个 AlbumNames

MyName[abc]plus

MyName [abc]!

您可以尝试通过以下方式确定这七个记录

SELECT AlbumName FROM album 
WHERE AlbumName RLIKE '.*\\[.*\\]' AND AlbumName NOT RLIKE '^.*\\[.*\\]$';

关于mysql - RLIKE/REGEXP 和 LIKE 的等价性 - 匹配整个字符串与任意子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37508227/

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