簡體   English   中英

從命令行循環運行SQL查詢

[英]running a SQL query in a loop from the command line

我有一個相當復雜的查詢,我需要運行數千次,並且該參數取自另一個表的列中的值。 以任何理智的方式作為簡單的JOIN編寫都太復雜了。

查詢的每次執行大約需要6秒鍾,因此編寫PHP腳本執行此循環可能會使Web服務器崩潰。 有沒有一種方法可以在OSX的命令行中執行此操作? (我意識到這已經開始進入超級用戶領域,我應該在那兒問嗎?)。

我想做的是:

  1. 運行查詢以從table1.columnA獲取所需的值。
  2. 將這些值( valueA )存儲到某種數組中。
  3. 遍歷此數組,並對每個值執行我的復雜查詢:

INSERT INTO table2 (id, :valueA) SELECT id from table3 WHERE id NOT IN (COMPLEX_SUBQUERY) AND tableXYZ.value = :valueA

最好的解決方案似乎是在某種形式的shell腳本中執行此操作,但坦率地說,Unix腳本對我來說仍然有些不可思議。 我使用PHP編寫腳本要舒適得多,但我想如果我嘗試將其作為PHP腳本執行,Apache就會感到恐懼。

我無法發表評論,但是我可以告訴您,您完全可以將php作為命令行腳本語言使用,而無需參與Web服務器。

從cli嘗試:php script.php

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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