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

MySQL 5.7如何无需全局变量和存储过程合并两组随机插入查询?

在MySQL 5.7中合并两个插入查询的方案

可以通过UNION ALL将两个SELECT语句的结果合并,然后一次性插入目标表,无需全局变量或存储过程,具体写法如下:

define p1_id, p2_id int;

...

INSERT INTO Cards_in_game_decks
SELECT * FROM Cards_in_decks WHERE player_id = p1_id ORDER BY RAND() LIMIT 10
UNION ALL
SELECT * FROM Cards_in_decks WHERE player_id = p2_id ORDER BY RAND() LIMIT 10;

关键说明

  • 选用UNION ALL而非UNION:因为两个子查询分别对应不同的player_id,结果集不会有重复数据,UNION ALL无需执行去重操作,性能更优。
  • 子查询独立随机取数:每个SELECT都单独使用ORDER BY RAND() LIMIT 10,保证从每个玩家的卡片中随机选取10条,完全匹配原逻辑。
  • 无额外依赖:全程不需要全局变量、存储过程或其他复杂对象,仅通过SQL语句组合完成需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 01:50:14