You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL中筛选含四位数字组合的邮箱数据

PostgreSQL筛选含四位连续数字的邮箱行

问题原因

你之前用的LIKE '%[0-9][0-9][0-9][0-9]%'无效,是因为PostgreSQL的LIKE不支持[0-9]这类正则字符类语法——它只会把[0-9]当作字面字符串匹配,而非数字范围。

解决方案

以下两种方法都能实现需求:

1. 使用POSIX正则匹配(推荐)

PostgreSQL支持用~运算符直接写POSIX正则,语法更简洁灵活:

SELECT * FROM 用户数据表
WHERE email ~ '\d{4}';

\d代表任意数字,{4}表示连续出现4次,这个条件会匹配邮箱中任意位置的四位连续数字。

如果想缩小范围,只匹配年份类的四位数字(比如1900-2099),可以调整正则:

SELECT * FROM 用户数据表
WHERE email ~ '19[0-9]{2}|20[0-9]{2}';

这个规则只会匹配19xx或20xx格式的四位数字,能减少部分误判。

2. 使用SIMILAR TO运算符

如果习惯SQL标准的正则语法,也可以用SIMILAR TO,它支持[0-9]字符类和数量限定符:

SELECT * FROM 用户数据表
WHERE email SIMILAR TO '%[0-9]{4}%';

内容的提问来源于stack exchange,提问作者Dim Ch

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 10:33:15