はじめに

SQLServer畑で育ったが近頃はMySQLをよく触っている。SQLは方言がたくさんと言われるがSELECT〜INTOでそれを実感した話。

SELECT〜INTO SQLServerの場合

-- SQLServer
select  id
into    #temp_table
from    test_table;

上記はidというカラムを持つ#temp_tableという一時テーブルを作成する。
つまりSQLServerでのSELECT〜INTOはテーブル生成とレコード挿入を一度に行う。

SELECT〜INTO MySQLの場合

-- MySQL
select  id
into    @temp_value
from    test_table;

@temp_valueは変数。
テーブル生成ではなくidは変数に取得される。
変数への取得をSQLServerで書くならこんな風に書く。

-- SQLServer
select  @temp_value = id
from    test_table;

MySQLではファイルへの出力もできる SELECT〜INTO OUTFILE もある

SELECT a,b,a+b INTO OUTFILE '/tmp/result.txt'
  FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
  LINES TERMINATED BY '\n'
  FROM test_table;

csvを吐き出すクエリの例を抜粋。

Tags
No Tag

No responses yet

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です