按计划执行存储过程并将结果写入指定数据库单元格的需求
解决方案
修正后的存储过程代码(两种实现方式)
方式一:直接子查询赋值
BEGIN UPDATE wanderingtrader.npcs SET startpos = (SELECT location FROM StartPositions WHERE id = FLOOR(1 + RAND() * 5)) WHERE id = 1; END
方式二:使用变量存储结果后赋值
BEGIN DECLARE random_location VARCHAR(255); -- 请根据location字段的实际数据类型调整 SELECT location INTO random_location FROM StartPositions WHERE id = FLOOR(1 + RAND() * 5); UPDATE wanderingtrader.npcs SET startpos = random_location WHERE id = 1; END
关键说明
- 修正了随机ID生成逻辑:原代码的
FLOOR(1 + RAND() * (5 - 0 +1))会生成1-6的随机数,若要严格限定在1-5范围内,改为FLOOR(1 + RAND() * 5)即可 - 两种方式均实现了从
StartPositions表随机选取1-5范围内ID对应的location值,写入npcs表中id=1的startpos字段 - 若
location字段为非字符串类型(如整数、空间数据等),需同步调整变量声明的类型
内容的提问来源于stack exchange,提问作者Budd ItzBuddTTV
相关产品推荐
相关产品推荐

