1、业务场景
实际业务开发需要模拟用户11位手机号,数据库如何快速生成随机不重复号码?
2、知识前提
11位手机号码参考百度说明:

3、实现方案
SQLServer编写函数,生成随机11位测试用手机号,只考虑MAC段,前三位符合手机号码段规范。
函数GetRandPhoneNum入参说明:
@operator表示号段;
@seed表示随机种子,固定newid()
具体sql语句:
--sqlserver生成11位测试用随机手机号GetRandPhoneNum
if exists(select 1 from sysobjects where id=OBJECT_ID('GetRandPhoneNum'))
drop function GetRandPhoneNum
go
create function GetRandPhoneNum(@operator nvarchar(50)='0',@seed nvarchar(36))
returns nvarchar(11)
as
begin
--@operator:0-随机,1-中国电信号段,2-中国联通号段,3-中国移动号段,4-中国广电号段
--@seed:固定传入newid(),函数不支持newid和rand
declare @phongNum nvarchar(11)--随机手机号码
declare @operatorStart nvarchar(3)--3位运营商号码段
declare @randNum nvarchar(8

该博客介绍了如何在SQLServer中创建一个函数GetRandPhoneNum,用于生成11位的随机手机号码,支持指定运营商号段或随机选择。函数接受运营商参数和随机种子,通过运算生成不重复的手机号码,可用于测试场景。
最低0.47元/天 解锁文章
1724

被折叠的 条评论
为什么被折叠?



