我不是 SQL
专家,但有时我会遇到需要 for 循环将一个查询的结果迭代到另一个查询的情况。示例:
SELECT values FROM some_table WHERE name="blah";
或者在 bash 中我可能会这样做:
mysql -e "use ${database}; SELECT values FROM some_table WHERE name='blah';" > list
然后我最终将此查询的结果放入一个文件中,并将其格式化以与 php
或 bash
一起使用,如下所示:
for i in `cat list`; do mysql -e "use ${database}; UPDATE other_table SET column="data" where values="${i}"; done
有没有办法用SQL
来完成这个任务,并节省我制作和格式化列表文件的时间?我想我需要将第一个查询的结果存储在一个数组中,然后循环它?
--只是为了澄清我想避免使用 bash
、php
或任何其他语言,并完成我在 mysql
“交互式”命令行。
最佳答案
您似乎想要更新 other_table 中 some_table 中存在的所有值。?
您可以使用以下方法来完成此操作
update other_table
set column="data"
where values in (select values from some_table where name='blah')
关于mysql - 带 SQL 查询结果的 FOR 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59378454/