插入随机数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,而不是唯一的随机数。
任何关于我做错了什么的想法都会很有帮助。
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);