テーブルを MySQL にアップロードします。 TEXT と \n\r を含む列<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />JMP に、いくつかの数値列、文字列、日付列、および大きなテキストの塊 (特殊文字、カンマ、. がいっぱい) を含むいくつかの列を含むテーブルがあります。
このテーブルを MySQL にアップロードしたいのですが、いくつかの課題に直面しています。 私はいくつかの方法を試しました:
方法 1 - CSV として保存し、ワークベンチ/他の mysql ツール経由でアップロードする
JMP はテキスト部分 (特殊文字) を CSV に適切にコーディングしていないようです。CSV をアップロードすると、テキスト ブロック内の文字の一部が別のセルとして解釈され、データ行全体が台無しになってしまいます。 「\n」と「\r」を手動で修正しましたが、その他の文字がまだ適切にコーディングされていないため、CSV が正しくアップロードされません。
方法 2 - JMP 経由でアップロード「テーブルを DB にアップロード」
残念ながら、このオプションでは新しいテーブルの自動 (データ列タイプの選択なし) アップロードのみが可能です。 この結果、JMP はテキスト ブロックを CHAR (255) として定義しますが、これは私のテキストを収容できるほど大きくないため、切り詰められてしまいます。
私の理想的な解決策:
- 正しい列と列定義を含むテーブルをスキーマ内に作成するだけです。
- 次に、スクリプトを使用して、既存の空の (またはそうでない) テーブルにデータをアップロードします。
コミュニティを探していると、上記のことを行うためのスクリプトの作成に役立つ可能性のあるコードを見つけました。
そこで 3 つの質問:
- CSV に変換するときに何か間違ったことをしているのでしょうか、それとも対処する必要がある JMP の単なるバグでしょうか?
- このデータセットをアップロードするために他に考えられるアイデアや方法はありますか?
- 上記のスクリプトをまとめるのに協力していただければ大歓迎です。
前もって感謝します!
Re: テーブルを MySQL にアップロードします。 TEXT と \n\r を含む列JMP 13 (近日公開予定) では、データベース統合 (ファイル -> データベース -> テーブルの保存およびファイル -> データベース -> テーブルを開く) に関していくつかの改善が加えられています。
Re: テーブルを MySQL にアップロードします。 TEXT と \n\r を含む列動作するようです: このテーブルから CSV を作成しました:

そして、何度か間違って起動した後、次のようにインポートしました。
ファイル '/home/c/Desktop/windowsShare/stories.csv' のデータをロードします。テーブルに置き換えます。ストーリー フィールドは ',' で終わり、必要に応じて '"' で囲まれます。行は '' で終わります。
そして、データを16進数でダンプしました
ストーリーからヘクス(ストーリー)を選択します。
+------------------------------------------------ ---------------------------------------+
|ヘックス(ストーリー) |
+------------------------------------------------ ---------------------------------------+
削除されました false の開始...
| 7468697320697320612074776F 0D 6C696E652073746F7279 |
| 746869732069732061207468726565 0D 6C696E65 0D 73746F7279 |
| 6F6E65206C696E6572 |
+------------------------------------------------ ---------------------------------------+
CR(0D)の文字を太字にしました。
私は mysql の専門家ではありません。 mysql がデータ内の列名をより適切に処理できるかどうかはわかりません。これを機能させるために、mysql テーブルと JMP テーブルの順序を同じにしました。
HEX がないと、何が起こったのかを理解するのが少し難しくなります。
ストーリーから * を選択します。
+--------+------------------------------------------ ------+------+
|名前 |ストーリー |グレード |
+--------+------------------------------------------ ------+------+
削除された誤った開始
|名前 |ストーリー | 0 |
ラインストーリー | 12 |
ストーリー | 12 |
|フレッド |ワンライナー | 99 |
+--------+------------------------------------------ ------+------+
9 行セット (0.00 秒)
(これは Linux シェル ウィンドウに出力されます)。CR には LF (このデータ テーブルの作成方法) がありません。これはカーソルを行の先頭に移動しますが、新しい行に改行は行わず、行の先頭を上書きします。16 進数で示されているように、データは実際には mysql テーブル内にあります。
最後に、CSV のダンプ:
loadtextfile("$desktop/stories.csv",blob)
Char から Blob(
「名前、ストーリー、学年」 ~0D~0Aケイティ、~22これは 2 つの ~0D ラインの話~22,12 ~0D~0Aルイーズ、~22これは 3 です~0Dライン~0Dストーリー~22,12 ~0D~0Aフレッド、ワンライナー、99 ~0D~0A "、
"ascii~hex"
)
Windows 上の JMP は行末 (太字 ~0D~0A) で CRLF を使用していることがわかります。
Re: テーブルを MySQL にアップロードします。 TEXT と \n\r を含む列mySQL に CSV をインポートする方法を指示できるようです。
php – CSVからMySQLへの改行の問題 - コードログ
アップロードされたCSVをPHPからMySQLテーブルにインポートする際の正しいLINES TERMINATED BY - コードログ
編集: それが簡単な答えであることが判明した場合は、それを機能させる mySQL 構文をポストバックしてください。ありがとう!
Re: テーブルを MySQL にアップロードします。 TEXT と \n\r を含む列どうでしょうか:
1. 長いテキストフィールドを除くすべてのフィールドを含む .csv ファイルを保存します。
2. .csv ファイルを MySQL にアップロードします
3. JMP 内からテーブルをループし、長いテキスト フィールドを使用して MySQL のテーブルを更新します。