簡體   English   中英

帶有 SQL 查詢結果的 FOR 循環

[英]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

然后我最終將這個查詢的結果放入一個文件中,並將其格式化為與phpbash一起使用,如下所示:

for i in `cat list`; do mysql -e "use ${database}; UPDATE other_table SET column="data" where values="${i}"; done

有沒有辦法用SQL來實現這一點並節省我制作和格式化列表文件的時間? 我想我需要將第一個查詢的結果存儲在一個數組中,然后循環遍歷它?

-- 只是為了澄清我想避免使用bashphp或任何其他語言並完成我在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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM