mysql - 在 MySQL 查询中复制 "For Each"循环

标签 mysql loops for-loop

我一直在工作中使用 MySQL,但我在更高级的查询方面仍然有点菜鸟,并且经常发现自己编写冗长的查询,我觉得(或希望)可以大大缩短。

我最近遇到了一种情况,我需要在一个表中为另一个表中的每个条目创建 X 个新条目。我还需要将第二个表中每一行的值复制到我插入到第一张表中的每一行中。

为了清楚起见,这是我正在尝试做的事情的伪代码:

For each row in APPS
   create new row in TOKENS
   set (CURRENT)TOKENS.APP_ID = (CURRENT)APPS.APP_ID

感谢任何帮助,即使它归结为“这是不可能的。”

请注意,这些表仅共享一个字段,我将静态或通过其他方法设置其他字段,因此简单地复制并不是一个真正的选择。

最佳答案

您不需要循环,您可以使用单个 INSERT 命令一次插入所有行:

INSERT INTO TOKENS (APP_ID)
SELECT APP_ID 
FROM APPS;

如果您想为该行设置其他值,只需修改 INSERT 列表和 SELECT 子句。例如:

INSERT INTO TOKENS (APP_ID, static_value, calculated_value)
SELECT APP_ID, 'something', 'calculated-' + APP_ID
FROM APPS

关于mysql - 在 MySQL 查询中复制 "For Each"循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13711209/

相关文章:

php - 合并来自 PHP 的多个 MySQL 结果,使用相同的排序规则/排序

mysql - 如何内连接mysql查询的查找表?

php - fatal error :调用未定义的方法 mysqli_stmt::get_result()

javascript - iGoogle 小工具检查器在 for 循环中抛出错误

c++ - 从 vector 中删除项目,而在 C++11 范围 'for' 循环中?

javascript - JSlint - 在 for 循环内创建函数与评估函数

c++ - 两个同时 for 循环 MATLAB 或 C++

android - 任何人都可以完全指导 eclipse 和 mysql 配置和连接

java - 将 double 格式设置为五位小数

java - Java无限循环是否需要增量