【发布时间】:2016-05-29 09:25:32
【问题描述】:
我有两个问题。
SELECT count(AlbumID)
FROM album
WHERE albumname like '%[%]';
结果:15733
SELECT count(AlbumName)
FROM album
WHERE AlbumName RLIKE '.*\\[.*\\]';
结果:15740
所以你可以看到 like 返回比 rlike 少 7 个元素。我有两个问题为什么会这样?陈述不一样吗?如果我正在寻找包含 Result: Artist - Song [Live] 或 Result: Artist- Song [Gold CD, Excplicit Lyrics] 的名称,那么查询会返回正确的结果吗?
【问题讨论】:
-
SELECT count(AlbumID) FROM album WHERE AlbumName RLIKE '.*\\[.*\\]';显示什么?有没有AlbumID是null? ==>select count(*) from album where AlbumID is nullselect count(*) from album where albumname like '%[%]';的结果是什么 -
@EagleRainbow 第一个查询得到了相同的数字 15740。第二个查询得到的结果是 0,所以没有这样的专辑。第三次查询得到的结果与 AlbumID 计数相同,即 15733。因此不同的选择不会影响结果。你知道这是为什么吗?
-
执行
SELECT AlbumName FROM album WHERE ... rlike ... AND ... NOT like ...以查看 7 个神秘行。它们之间有什么共同点?然后回答你自己的问题。
标签: mysql regex sql-like rlike regexp-like