mysql - 带 SQL 查询结果的 FOR 循环

标签 mysql sql

我不是 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来完成这个任务,并节省我制作和格式化列表文件的时间?我想我需要将第一个查询的结果存储在一个数组中,然后循环它?

--只是为了澄清我想避免使用 bashphp 或任何其他语言,并完成我在 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/

相关文章:

sql - 创建过滤索引在 SQL Server 2012 Express 中不起作用

SQL Loader ctl 文件 - 如何跳过列

Mysql查询需要优化

php - mySQL 插入语句不工作?

mysql - Magento 使用 csv 数据流导入客户(700k)太慢

InnoDB压缩后Mysql错误索引

MySQL 搜索(按相关性排序)

php - 使用 MyISAM 从多个表中删除

MySQL - 如果在其他表中出现超过 x 次,则选择行

sql - 删除不不同的行