如何使用MySQL判断字符串是否含数字并统计开头带数字的邮箱数量
实现方案
MySQL支持两种常用的方式实现首字符为数字的邮箱筛选,你原SQL里的LIKE '%%.com'多写了一个冗余的%,调整为LIKE '%.com'就可以正常匹配所有后缀为.com的邮箱,再叠加首字符为数字的筛选条件即可:
方法1:使用正则匹配(写法更简洁)
直接通过REGEXP关键字匹配开头为数字的规则,SQL语句如下:
SELECT COUNT(DISTINCT email) FROM `table` WHERE email LIKE '%.com' AND email REGEXP '^[0-9]';
^[0-9]是正则规则,代表字符串首字符为0-9之间的数字- 注意
table是MySQL内置关键字,用反引号包裹可以避免语法报错
方法2:使用字符截取函数(逻辑更直观)
通过LEFT()函数截取邮箱第一个字符,判断是否为数字即可:
SELECT COUNT(DISTINCT email) FROM `table` WHERE email LIKE '%.com' AND LEFT(email, 1) BETWEEN '0' AND '9';
内容的提问来源于stack exchange,提问作者JumpJ
相关产品推荐
相关产品推荐

