查找Mysql REGEXP的年份范围
P粉545910687
P粉545910687 2024-04-01 14:26:29
0
1
543

我想根据年份间隔来分离我的电影网站上表格中的内容,但无论我如何努力,我都无法成功。 实际上,我想要的是在 1950 之前列出电影文件。 我不知道我是否犯了语法错误,因为我是初学者

A Movie 1910
B Movie 1920
C Movie 1930
D Movie 1940
E Movie 1950
F Movie 1970
G Movie 1990


SELECT * FROM streams WHERE type='movie' AND filename REGEXP '/^(190[1-9]\d|194\d)$/';

P粉545910687
P粉545910687

全部回复(1)
P粉432930081

年份位于文件名的末尾,而不是开头,因此您需要删除 ^ 锚点。

19 之后有一个额外的 0,因此您匹配的是以 190 开头的 5 位数年份,而不是 4 位数以 19 开头的年份。

不要在 SQL 中的正则表达式周围放置 / 分隔符。

SELECT * FROM streams 
WHERE type='movie' 
AND filename REGEXP '19[0-4]\d$';

如果您使用 MySQL 5.x 而不是 8.x,它不支持像 \d 这样的转义序列。将其替换为 [0-9] 以匹配数字。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板