mysql - 带有 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
然后我最终将此查询的结果放入一个文件并将其格式化以使用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
“交互式”命令行上尝试做的事情。
解决方案
您似乎想为 some_table 中存在的所有值更新 other_table。?
您可以使用
update other_table
set column="data"
where values in (select values from some_table where name='blah')
推荐阅读
- c++ - 最大索引差异问题的数组分段错误
- python - AttributeError:模块'api.db'在Flask上没有属性'Model'
- python - 如何在 matplotlib 轴上显示清晰的图像以及如何在动态变化的轴上完美地拟合矩形?
- c# - 使用 azure 上的区域和域的 Mvc 起始页
- java - 如何在android studio中更改imageview上的文本位置?
- database - 关于创建网站以与我的 Raspberry Pi 服务器通信的非常普遍的问题
- javascript - 在输入 oninput 中调用 javascript 方法作为回调
- c# - 是否有更好的实践来管理类的实例化?
- django - 如何在 Django 中防止重复的 POST 请求处理?
- html - 我可以在 wordpress 页面上放置超过 1 个 Azure 媒体播放器吗?