裏MySQLクエリー入門(6) 基礎編4 SQLでSQLを作る

 このTIPSはRDBMSすべてで共通で使えるテクニックなので、知っている人も多くいると思いますが、今後の応用編で必須になってきますのでおさらいしておきましょう。

 例えば結合するテーブルが多すぎる場合など、何個かのSQLに小分けすることでJOINを回避することができます。そのようなときに、テンポラリーテーブルなどを作らず*1に、SQLSQL文を作るローテクがこのテクニックになります。例えば前エントリーの都道府県コードのUPDATE文を作る場合

SELECT CONCAT('UPDATE pref SET pref_name="',pref_name,'" WHERE pref_id=',pref_id,';') 
FROM pref

となります。この事例の場合はUPDATE対象となるカラムを事前にSELECT文でUPDATE文を生成してバックアップしておき、実際にUPDATE対象にアップデートをかけたあと、間違いがあった場合に復旧したりしたい場合に使います。

*1:こちらについては、今後別途解説致します。