gpt4 book ai didi

mysql - 在 MySQL 中选择整数范围。例如。 1,2,3,4,...,n;

转载 作者:IT王子 更新时间:2023-10-29 00:28:06 25 4
gpt4 key购买 nike

我需要在 MySQL 中选择整数范围。像这样

SELECT RANGE(10,20) AS range;

返回

10, 11, 12, 13, 14, ..., 20

为什么?
我想从尚未注册的范围中选择随机电话号码。这是想法。

SELECT RANGE(100000,999999) AS range FROM phone WHERE phoneNum <> range LIMIT FLOOR(100000 + RAND()*(899999);

最佳答案

您的查询有问题:

  1. 你不能使用 range在 WHERE 子句中。它是一个别名,只会在执行 WHERE 子句后定义。
  2. 即使您可以使用它,使用 <> 将一个数字与一组数字进行比较也毫无意义。 .一般来说,你可以使用 IN(...) , 但在你的特殊情况下你应该使用 BETWEEN 100000 and 999999并避免需要 RANGE功能。
  3. 如果您只想要一个数字,那么限制应该是 1,而不是随机数。通常选择您使用的随机项目 ORDER BY RAND() .

尝试使用这个查询:

SELECT phoneNum, 100000 as rangeStart, 999999 AS rangeEnd
FROM phone
WHERE phoneNum NOT BETWEEN 100000 AND 999999
ORDER BY RAND()
LIMIT 1

如果你想找到一个不在你的表中的数字并且可用的数字没有接近耗尽(比如分配了不到 80%),一个好的方法是生成随机数并检查它们是否被分配,直到你找到一个不是。

可能存在纯 MySQL 解决方案,但我认为它需要一些扭曲连接、随机和模数连接。

关于mysql - 在 MySQL 中选择整数范围。例如。 1,2,3,4,...,n;,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4386425/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com