MySQL选择随机整数
我想创建一个mysql查询,在其中我在两个值(包括以下示例中的1和5)之间选择一个随机数,该随机值构成where子句的一部分。如何做到这一点 下面是我尝试此操作的代码: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
选择*其中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))
没有@CidRAND()
返回一个正分数。所以0@cdaiga我删除的评论是关于他编辑前的第一个答案SELECT*WHERE Col7=FLOOR(1+(RAND()*6))
SELECT * WHERE Col7 = FLOOR(2 + RAND() * (7 + 1 - 2))