我不是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“交互式”命令行上完成我想要做的事情。
发布于 2019-12-18 00:55:13
您似乎想要为some_table中存在的所有值更新other_table。
您可以使用以下命令来完成此任务
update other_table
set column="data"
where values in (select values from some_table where name='blah')发布于 2019-12-18 00:50:41
不确定,但是,我想可能是你想要的。
Select tableb.fieldname1
from tableb
where tableb.fieldname2 in
(select tablea.fieldnamec
from tablea
where tablea.fieldnamed = 'blah'
);https://stackoverflow.com/questions/59378454
复制相似问题