測試/演示環境需為現有資料注入隨機數值(如點擊量、瀏覽量)。本文提供 RAND() + CEILING/FLOOR + CAST 組合拳,含完整 SQL 範例與步驟解析。
-- 產生 500,000 ~ 1,000,000 隨機整數
UPDATE `table_name` SET `field_name` = CEILING(RAND() * 500000 + 500000) WHERE (條件);
-- 依現有值按比例縮放(如點擊量 * 1%)
UPDATE `table_name` SET click = click * 0.01 WHERE classid = '2' AND click > 2000;
SELECT RAND(); -- 0.0000 ~ 1.0000 浮點數

SELECT RAND() * 10; -- 0.0 ~ 10.0
SELECT CEILING(RAND() * 10); -- 1-10 整數(向上取整)
SELECT FLOOR(RAND() * 10); -- 0-9 整數(向下取整)
SELECT ROUND(RAND() * 10); -- 0-10 整數(四捨五入)
SELECT CAST(RAND() * 10 AS SIGNED); -- 顯式轉整數
-- 支援類型:BINARY, CHAR, DATE, DATETIME, DECIMAL, SIGNED, UNSIGNED, TIME
-- 為 storm_effect_info 表 id=13 的 fhtp 欄位寫入 0-10 隨機整數
UPDATE storm_effect_info s
SET s.fhtp = (SELECT CAST(RAND() * 10 AS SIGNED) AS rand)
WHERE s.id = 13;
-- 依分類注入不同量級隨機數
UPDATE products SET view_count = CASE
WHEN category = 'hot' THEN CEILING(RAND() * 90000 + 10000) -- 10k-100k
WHEN category = 'normal' THEN CEILING(RAND() * 9000 + 1000) -- 1k-10k
ELSE CEILING(RAND() * 900 + 100) -- 100-1k
END;
RAND() 在單條 SQL 中**每行重新計算**,滿足逐行不同隨機數需求LIMIT 10000 避免長事務鎖表RAND(seed) 固定種子三行代碼搞定隨機注入,測試資料準備不再手工造數。