You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何更新SQL列将其赋值为1-10范围内的随机整数?

MySQL更新字段为1-10不重复随机数方案

前提说明

1-10区间仅存在10个不重复的整数,因此仅当project1everything表的总行数≤10时可实现该需求,超出则需调整随机数取值范围。

实现步骤(适配MySQL 8.0+最新版本)

操作前先执行备份命令,避免数据更新错误:

CREATE TABLE project1everything_bak AS SELECT * FROM project1everything;

正式更新语句

将语句中的你的表主键字段替换为project1everything表实际的主键字段名即可执行:

UPDATE project1everything t
JOIN (
  -- 给原表所有行随机排序并分配1~N的行号(N为表总行数)
  SELECT *, ROW_NUMBER() OVER(ORDER BY RAND()) AS row_num
  FROM project1everything
) t2 ON t.你的表主键字段 = t2.你的表主键字段
JOIN (
  -- 生成1~10的随机排序序列
  SELECT 1 AS rand_num UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL
  SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL
  SELECT 8 UNION ALL SELECT 9 UNION ALL SELECT 10
  ORDER BY RAND()
) s ON t2.row_num = s.rand_num
SET t.views = s.rand_num;

校验逻辑

更新完成后可执行以下语句验证views字段无重复、取值均在1-10区间内:

-- 校验重复值,正常返回结果为空
SELECT views, COUNT(*) FROM project1everything GROUP BY views HAVING COUNT(*) > 1;
-- 校验取值范围,正常返回结果为空
SELECT views FROM project1everything WHERE views < 1 OR views >10;

内容的提问来源于stack exchange,提问作者Arthur Silva

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 13:39:02