从命令行循环运行SQL查询

时间:2015-03-29 02:42:41

标签: mysql macos command-line

我有一个相当复杂的查询,我需要运行几千次,参数取自另一个表的列中的值。以任何理智的方式写一个简单的JOIN太复杂了。

每次执行查询大约需要6秒,因此编写PHP脚本来执行此循环可能只会导致我的Web服务器崩溃。有没有办法在OSX的命令行中执行此操作? (我意识到这开始进入超级用户区域,我应该在那里问它吗?)。

我想做的是:

  1. 运行查询以从table1.columnA获取所需的值。
  2. 将这些值(valueA)存储到某种数组中。
  3. 遍历此数组,并对每个值执行复杂查询:
  4. INSERT INTO table2 (id, :valueA) SELECT id from table3 WHERE id NOT IN (COMPLEX_SUBQUERY) AND tableXYZ.value = :valueA

    最好的解决方案似乎是在某种shell脚本中这样做,但坦率地说,Unix脚本对我来说仍然是一种黑魔法。我在PHP中编写脚本更加舒服,但我想如果我尝试将这个脚本用作PHP脚本,那么Apache就会感到非常震惊。

1 个答案:

答案 0 :(得分:1)

我无法发表评论,但我可以告诉您,您完全可以将php用作命令行脚本语言,而且根本不会涉及网络服务器。

从cli:php script.php

尝试