插入随机数MySQL

本文关键字:MySQL 随机数 插入 | 更新日期: 2023-09-27 17:58:54

我正在尝试计算表中的行数,并为字段"random"生成随机数。现在,这就起作用了:

SELECT COUNT(*) FROM my_table;

这是有效的:

 UPDATE my_table SET random = FLOOR(6500 * RAND()) + 1;

但这不起作用:

UPDATE my_table SET random = FLOOR((SELECT COUNT(*) ) * RAND()) + 1;

但这会将行计数为0并加一,因此所有字段都有数字1,而不是唯一的随机数。

任何关于我做错了什么的想法都会很有帮助。

插入随机数MySQL

SELECT @cnt := count(*) FROM my_table;
UPDATE my_table SET random = FLOOR(@cnt * RAND()) + 1;

演示:http://sqlfiddle.com/#!2/a896d/4

;with randtab
AS
(
SELECT 
    COUNT(*) AS otCount 
FROM 
    my_table
)
UPDATE my_table 
SET random = FLOOR(randtab.otCount * RAND()) + 1 
from randtab;

你尝试过这个吗:

DELIMITER $$
CREATE PROCEDURE random_fill( IN cnt INT )
BEGIN

fold: LOOP
     IF cnt < 1 THEN
         LEAVE fold;
     END IF;
    UPDATE my_table  SET random =  9 + CEIL( RAND() * 90 ) from randtab;

    SET cnt = cnt - 1;
END LOOP fold;
END$$ 
DELIMIMTER ;

像这样使用:

CALL random_fill(10000);