如何使用PHP为MySQL数据表行添加1-40区间的随机数
数据表批量添加指定规则随机数实现方案
以下是三种常用场景下的实现方法:
方案1:Excel/WPS表格实现
- 首先新增一列命名为
随机数列表用来存储生成的结果 - 处理video id为1的行,直接输入公式即可生成3个1-40区间的随机数:
=TEXTJOIN("、",TRUE,RANDBETWEEN(1,40),RANDBETWEEN(1,40),RANDBETWEEN(1,40)) - 其余行输入下方公式,会随机生成2个或3个符合要求的随机数:
=IF(RANDBETWEEN(0,1)=0,TEXTJOIN("、",TRUE,RANDBETWEEN(1,40),RANDBETWEEN(1,40)),TEXTJOIN("、",TRUE,RANDBETWEEN(1,40),RANDBETWEEN(1,40),RANDBETWEEN(1,40))) - 如果需要固定随机数不随表格刷新变化,选中所有生成的随机数列,右键选择「粘贴为值」即可
方案2:Python Pandas实现
import pandas as pd import random # 替换为你的实际数据表路径 df = pd.read_excel("你的数据表路径.xlsx") def generate_random(video_id): if video_id == 1: # video id为1固定生成3个随机数 return "、".join(map(str, [random.randint(1,40) for _ in range(3)])) else: # 其余行随机生成2个或3个随机数 count = random.choice([2,3]) return "、".join(map(str, [random.randint(1,40) for _ in range(count)])) df["随机数列表"] = df["video id"].apply(generate_random) # 替换为你需要的输出路径 df.to_excel("添加随机数后的数据表.xlsx", index=False)
方案3:SQL实现(针对数据库存储的表)
假设你的表名为video_info:
- 先新增存储随机数的字段:
ALTER TABLE video_info ADD COLUMN random_nums VARCHAR(100); - 更新video id为1的行:
UPDATE video_info SET random_nums = CONCAT(FLOOR(1 + RAND() * 40), '、', FLOOR(1 + RAND() * 40), '、', FLOOR(1 + RAND() * 40)) WHERE video_id = 1;
- 更新其余行:
UPDATE video_info SET random_nums = IF( RAND() < 0.5, CONCAT(FLOOR(1 + RAND() * 40), '、', FLOOR(1 + RAND() * 40)), CONCAT(FLOOR(1 + RAND() * 40), '、', FLOOR(1 + RAND() * 40), '、', FLOOR(1 + RAND() * 40)) ) WHERE video_id != 1;
注意:不同数据库的随机函数略有差异,SQL Server用
RAND(),PostgreSQL用RANDOM(),Oracle用DBMS_RANDOM.VALUE(1,40),根据实际使用的数据库替换即可。
内容的提问来源于stack exchange,提问作者Thaw Rakht If
相关产品推荐
相关产品推荐

