首页 > 解决方案 > 带有 SQL 查询结果的 FOR LOOP

问题描述

我不是SQL专家,但有时我会遇到需要 for 循环将查询结果迭代到另一个查询的情况。例子:

SELECT values FROM some_table WHERE name="blah";

或者在 bash 中我可能会这样做:

mysql -e "use ${database}; SELECT values FROM some_table WHERE name='blah';" > list

然后我最终将此查询的结果放入一个文件并将其格式化以使用phpbash类似这样:

for i in `cat list`; do mysql -e "use ${database}; UPDATE other_table SET column="data" where values="${i}"; done

有没有办法做到这一点SQL并节省我制作和格式化列表文件的时间?我想我需要将第一个查询的结果存储在一个数组中,然后循环遍历它?

--只是为了澄清我想避免使用bash,php或任何其他语言并完成我在mysql“交互式”命令行上尝试做的事情。

标签: mysqlsql

解决方案


您似乎想为 some_table 中存在的所有值更新 other_table。?

您可以使用

update other_table
   set column="data"
 where values in (select values from some_table where name='blah')

推荐阅读