MySQL选择随机整数

MySQL选择随机整数,mysql,random,Mysql,Random,我想创建一个mysql查询,在其中我在两个值(包括以下示例中的1和5)之间选择一个随机数,该随机值构成where子句的一部分。如何做到这一点 下面是我尝试此操作的代码: 选择*其中Col7=(RAND()*(5-1+1)+1)仅用于解决方案的多样性 SET @rnd := rand(); SELECT * WHERE Col7 = CASE WHEN @rnd < 0.2 THEN 1 WHEN @rnd < 0.4 THEN

我想创建一个mysql查询,在其中我在两个值(包括以下示例中的1和5)之间选择一个随机数,该随机值构成where子句的一部分。如何做到这一点

下面是我尝试此操作的代码:


选择*其中Col7=(RAND()*(5-1+1)+1)

仅用于解决方案的多样性

SET @rnd := rand();
SELECT * WHERE Col7 = CASE WHEN @rnd < 0.2 THEN 1 
                           WHEN @rnd < 0.4 THEN 2 
                           WHEN @rnd < 0.6 THEN 3 
                           WHEN @rnd < 0.8 THEN 4 
                           ELSE 5 
                      END
SET@rnd:=rand();
当@rnd<0.2时,选择*WHERE Col7=CASE,然后选择1
当@rnd<0.4时,则为2
当@rnd<0.6时,则为3
当@rnd<0.8时,则为4
其他5
结束

您可以使用和使用以下选项:

因此,您的查询如下所示:

SELECT * FROM table_name WHERE Col7 = FLOOR(1 + (RAND() * 5))


返回范围
0内的随机浮点值
v
,您可能需要对随机生成的数字进行四舍五入

如果您需要一个介于1和5之间的随机数(包括两者),您的查询可能是:

SELECT * WHERE Col7 = FLOOR(1 + RAND() * (5 + 1 - 1))
SELECT * WHERE Col7 = FLOOR(2 + RAND() * (7 + 1 - 2))
如果您需要一个介于2和7之间的随机数(包括两者),您的查询可能是:

SELECT * WHERE Col7 = FLOOR(1 + RAND() * (5 + 1 - 1))
SELECT * WHERE Col7 = FLOOR(2 + RAND() * (7 + 1 - 2))

没有@Cid
RAND()
返回一个正分数。所以
0@cdaiga我删除的评论是关于他编辑前的第一个答案
SELECT*WHERE Col7=FLOOR(1+(RAND()*6))
SELECT * WHERE Col7 = FLOOR(2 + RAND() * (7 + 1 - 2))