2

私はMySQLの初心者です.1つのフィールドに.txtファイルを入力する必要があります。

私のスクリプトは現在読んでいます:

LOAD DATA INFILE '/attachments/file.txt' into table files (data);

しかし、クエリを実行すると、MySQL は、1 つのレコードだけでなく、複数のレコードを更新したことを示します。.txt ファイルの各行が異なるフィールドに移動します。

スクリプトで .txt ファイル全体を 1 つのフィールドにアップロードするように要求することはできますか?

ありがとう!

4

1 に答える 1

11

シナリオの詳細に応じて、これを行う方法がいくつかあります。

データ・インファイルのロード

おそらく次のようなものが必要です。

LOAD DATA LOCAL INFILE '/path/to/file/data_file.csv'
    IGNORE
    INTO TABLE `databasename`.`tablename`
    CHARACTER SET utf8
    FIELDS
        TERMINATED BY '\n'
        OPTIONALLY ENCLOSED BY '"'
    IGNORE 1 LINES
    (column1)
SHOW WARNINGS;

これは から にインポートさ/path/to/file/data_file.csvdatabasename.tablename、テキスト ファイルの各完全な行がテーブルの新しい行にインポートされ、その行のすべてのデータが という列に配置されますcolumn1。詳細はこちら

LOAD_FILE

または、次のように LOAD_FILE 関数を使用できます。

UPDATE table
  SET column1=LOAD_FILE('/path/to/file/data_file.csv')
  WHERE id=1;

これにより、ファイルの内容がインポート/path/to/file/data_file.csvされcolumn1、行のid=1. 詳細はこちら。これは主にバイナリ ファイルをフィールドにロードすることを目的としてBLOBいますが、必要に応じて、テキスト ファイル全体を 1 行の 1 列に吸い込むためにも使用できます。

TEXT 列の使用

大きなテキスト ファイルをロードするには、TEXT 型の列を使用する必要があります。これは、非常に大量のテキストを問題なく格納できます。詳細については、こちらを参照してください。

于 2013-06-14T17:07:15.860 に答える