插入随机数MySQL

时间:2014-04-17 08:34:46

标签: c# mysql

我试图计算表格中的行数并为该字段生成随机数字' 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并添加一行,因此所有字段都具有第一个而不是唯一的随机数。

任何想法,我做错了都会有所帮助。

3 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

你试试这个:

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);