[英]FOR LOOP with SQL Query Results
我不是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')
不確定,但是,我認為子選擇可能是您想要的。
Select tableb.fieldname1
from tableb
where tableb.fieldname2 in
(select tablea.fieldnamec
from tablea
where tablea.fieldnamed = 'blah'
);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.