查找Mysql REGEXP的年份范围
P粉545910687
P粉545910687 2024-04-01 14:26:29
[MySQL讨论组]

我想根据年份间隔来分离我的电影网站上表格中的内容,但无论我如何努力,我都无法成功。 实际上,我想要的是在 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] 以匹配数字。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号