MySQL选择随机整数

标签 mysql random

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

我的代码如下:

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

最佳答案

您可以使用以下内容,使用 RAND FLOOR :

SELECT FLOOR(1 + (RAND() * 5));

因此您的查询如下所示:

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

Returns a random floating-point value v in the range 0 <= v < 1.0. To obtain a random integer R in the range i <= R < j, use the expression FLOOR(i + RAND() * (j − i)). For example, to obtain a random integer in the range the range 7 <= R < 12, use the following statement: SELECT FLOOR(7 + (RAND() * 5));

source: https://dev.mysql.com/doc/refman/8.0/en/mathematical-functions.html#function_rand


您还可以创建一个新的 FUNCTION 使用这些而不是 RAND 功能:

CREATE FUNCTION RAND_INT (minVal INT, maxVal INT)
RETURNS INT DETERMINISTIC
RETURN FLOOR(minVal + (RAND() * (maxVal + 1 - minVal)));

您可以使用创建的函数RAND_INT像这样:

SELECT * FROM table_name WHERE Col7 = RAND_INT(1, 5);

关于MySQL选择随机整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50292338/

相关文章:

php - 价格中缺少 2 位小数(PHP)

mysql - 分组依据在具有不同列的单行中

mysql - 如何为这种多对多关系建立关系数据库表?

java - 使用for循环的随机数加法器

python - 如何从 4 个 csv 文件中随机抽样,以便在 Python 中每个 csv 文件中按顺序出现不超过 2/3 行

php - 连接到另一个IP(服务器)上的MySQL,PHP

php - foreach 多维数组显示值

java - 使用 import java.util.Random; nextInt 和用户输入

基于相同的种子,在 R 中复制 SAS (rancor) 中生成的随机正态分布?

c# - 随机不是那么随机