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

如何筛选Customer表Phone_num列中第5-7位为5、6、7的10位手机号

解决方法:查询符合特定格式的10位手机号

要筛选出Customer表中符合要求的手机号,你可以用两种常见的SQL写法实现:

方法1:使用LIKE匹配模式

这种方法通过通配符直接匹配手机号格式,简单直观:

SELECT Phone_num
FROM Customer
WHERE LEN(Phone_num) = 10
  AND Phone_num LIKE '____567___';
  • LEN(Phone_num) = 10:确保手机号是严格的10位长度
  • ____567___:下划线_代表任意单个字符,前4个下划线匹配前4位任意数字,567固定匹配第5-7位,后3个下划线匹配最后3位任意数字

方法2:使用SUBSTRING截取字符段

这种方法通过截取指定位置的字符进行判断,灵活性更强:

-- 适配多数数据库(注意:不同数据库的字符串截取函数参数略有差异)
SELECT Phone_num
FROM Customer
WHERE LENGTH(Phone_num) = 10
  AND SUBSTRING(Phone_num, 5, 3) = '567';
  • SUBSTRING(Phone_num, 5, 3):从手机号第5位开始截取3个字符,判断是否等于567
  • 注意:SQL Server用LEN(),MySQL和Oracle用LENGTH();MySQL的截取函数也可写为SUBSTR(Phone_num, 5, 3)

额外注意事项

如果Phone_num列存储的是数值类型(如INT/BIGINT),需先转换为字符串类型再判断,否则无法使用LIKE或截取函数:

-- SQL Server示例
SELECT CAST(Phone_num AS VARCHAR(10)) AS Phone_num
FROM Customer
WHERE LEN(CAST(Phone_num AS VARCHAR(10))) = 10
  AND SUBSTRING(CAST(Phone_num AS VARCHAR(10)), 5, 3) = '567';

内容的提问来源于stack exchange,提问作者Vũ Hắc

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 10:15:34