我对postgresql非常陌生,我想知道如何去创建一个函数,它将以(888)888-8888格式生成随机电话号码。我甚至无法将我的头围绕如何做到这一点,如果任何人有任何反馈,将是伟大的。Postgresql - 生成随机电话号码的函数
回答
不是最优雅的代码,但它是非常简单,所以应该给你一个基础工作,从:
SELECT '('
|| (RANDOM() * 9)::INT
|| (RANDOM() * 9)::INT
|| (RANDOM() * 9)::INT
|| ') '
|| (RANDOM() * 9)::INT
|| (RANDOM() * 9)::INT
|| (RANDOM() * 9)::INT
|| '-'
|| (RANDOM() * 9)::INT
|| (RANDOM() * 9)::INT
|| (RANDOM() * 9)::INT
|| (RANDOM() * 9)::INT;
select regexp_replace(CAST (random() AS text),'^0\.(\d{3})(\d{3})(\d{4}).*$','(\1)\2-\3') AS random;
的随机()函数用于生成介于0的随机数然后是CAST as text and regexp_replace用于添加格式化字符。
更新后垫一些任意的数字串:
select regexp_replace(rpad(CAST (random() AS text),12,CAST(random() AS text)),'^0\.(\d{3})(\d{3})(\d{4}).*$','(\1)\2-\3') AS random;
没有保证,这将产生有效的电话号码 - 例如区号不能以零或一个开始,但如果你只需要要快速填写一些数字,这应该可以做到。
虽然不太可能,但'random()'可能会产生长度小于10位的数字,在这种情况下,这会失败。 – jgm
@jgm - 好点 - 我添加了第二个版本,用另一组随机数填充字符串。 – user2182349
要生成的请求的格式单一,完全随机的号码:
SELECT format('(%s%s%s) %s%s%s-%s%s%s%s'
, a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10])
FROM (
SELECT ARRAY (
SELECT trunc(random() * 10)::int
FROM generate_series(1, 10)
) AS a
) sub;
返回:
(213) 633-4337
或同级。
我想这:
select replace(replace(replace('(@n1) @[email protected]),
'@n1', lpad((random()*1000)::int::text, 3, '0')
), '@n2', lpad((random()*1000)::int::text, 3, '0')
), lpad((random()*10000)::int::text, 4, '0')
)
也就是说,使用三个不同的随机数,每一个分组。
如果您不允许一个或多个元素以零开头,则算法会稍有不同。
我相信第三个应该是'random()* 10000'(不是'1000')。 – pozs
- 1. 生成从用户的电话号码
- 2. 生成随机字母的函数
- 3. nasm随机数生成器函数
- 4. C++在函数中生成随机数
- 5. 随机电话号码xxx或yyy +运营商号码mm或nn +随机6或7位数字在php中
- 6. 生成随机数
- 7. 随机数生成
- 8. 生成随机数
- 9. JQuery从号码系列中生成黄金电话号码
- 10. 生成随机密码
- 11. 生成随机密码?
- 12. delphi生成随机PIN码
- 13. PHP生成随机密码
- 14. 随机密码生成与
- 15. 在VHDL函数中生成随机值
- 16. JQuery JSONP随机生成回调函数
- 17. 随机数生成机制
- 18. C随机数生成(纯C代码,无库或函数)
- 19. 随机数的生成
- 20. Cuda的随机数生成
- 21. 根据电话号码生成一个唯一的PIN码
- 22. PHP生成随机的00号 - 29
- 23. 制作随机电话号码XXX-XXX-XXXX
- 24. 在手机上点击电话号码时拨打电话号码拨号器
- 25. 关于编码电话号码生成应用程序电话号码的建议从0开始
- 26. 生成随机会话ID OpenTok
- 27. 是电话号码的最后一位数字是随机的吗?
- 28. 如何在Ruby中随机生成一个有效的E164格式的电话号码?
- 29. 比较用户输入的号码和Javascript中随机生成的号码
- 30. 电话号码
你想要一个随机数还是一大堆?请始终提供您的Postgres版本。 –
如果您希望您的号码符合实际,请确保前三位数字是有效的[NPA](https://en.wikipedia.org/wiki/List_of_North_American_Numbering_Plan_area_codes),接下来的三位是有效的NXX - 其余位数可以是随机的。 – gordy