行データを使用してoutfileのファイル名をフォーマットしようとしています。
私は次のことを試みましたが成功しませんでした:
SELECT t1.field1
FROM table1 t1
LIMIT 1
INTO OUTFILE CONCAT( '/my_path/', t1.field2, '.txt' );
誰かが代替案をお勧めできますか?
ありがとう
行データを使用してoutfileのファイル名をフォーマットしようとしています。
私は次のことを試みましたが成功しませんでした:
SELECT t1.field1
FROM table1 t1
LIMIT 1
INTO OUTFILE CONCAT( '/my_path/', t1.field2, '.txt' );
誰かが代替案をお勧めできますか?
ありがとう
MySQLでは、出力ファイルを式/変数として指定することはできません。これを行うことができた唯一の方法は、ステートメントを準備することでした(私の場合、ストアドプロシージャの一部として)。
SET @query = CONCAT("SELECT t1.field1 FROM table1 t1 LIMIT 1 INTO OUTFILE /my_path/", myvar, ".txt" );
PREPARE statement FROM @query;
EXECUTE statement;
ただし、この方法でソーステーブルから列/フィールドを参照することはできないと思います。
最初のSELECTステートメントを実行してt1.field1の値を取得し(おそらくSELECT ... INTO構文を使用)、次にこの変数を上記の構文で使用する必要があります。
コマンドプロンプトで実行することもできます。
mysql -h172.29.0.1 -uroot -pPassWd -e "SELECT t1.field1 FROM table1 t1 LIMIT 1">'/ my_path /'、t1.field2、'.txt'
(未テスト)