はじめに
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を吐き出すクエリの例を抜粋。
No responses yet