mysqlでエスケープ文字を含んだファイルをバッチモードでクエリーを実行させた時、エスケープ文字がそのまま出力ファイルに記述されます。(\tがTABにならずに、\tのまま出力される)
バッチモードの場合、どのようにしたらエスケープ文字を正常に出力させる事が出来るのでしょうか。
ちなみに、同様のクエリーをmysql(コマンドラインツール)を起動して直接入力し動作させる、
およびMysql Control Centerで行うと、期待通りの表示(\tはTAB)になります。
よろしくお願いします。Mysqlは ver4.0.18-max-ntです。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
linuxでも症状は同じでした。
select 'a\tb';というsql文でテストしましたが、mysql上でsqlを入力するとちゃんと[tab]が表現されますが、mysql < test.sqlとすると1行目、行の見出し部分は[tab]になるのですが2行目の結果の部分は「a\tb」と表示されてしまいますね。最初はシェルが勝手に\tをエスケープしているのかと思ったのですが1行目が[tab]になっているところを見るとそうではないようで。
原因がわからなければ適当な区切り文字で一旦出力して、その後タブに置換したらどうでしょうか。
ありがとうございました。結局バッチモードではエスケープ文字はうまく表現できないと解釈するしかないようですね。ちなみにPostgreでは出来てました。
No.1
- 回答日時:
\tを\\tにしたらどうなりますか?
この回答への補足
\tを\\tにしても、出力ファイルには\\tが出力されました。
ちなみに、dos窓で以下のようにして実行しています。
c:\mysql\bin>mysql -u root -p <mysql -u root -p <./test.sql >./test_out.txt
http://dev.mysql.com/doc/mysql/ja/batch-mode.htmlにWindowsでの特殊文字による問題発生の場合が示されていたので、
c:\mysql\bin>mysql -u root -p -e "source ./test.sql" >"./test_out.txt"
としても、結果は同様でした。
クエリ(test.sql)の中身
use shop;
select concat(EmployeeName, "さん\t", "[E-MAIL]\t", EMail) as "[連絡先]" from Employees;
結果(test_out.txt)
[連絡先]
AAAさん\t[E-MAIL]\tAAA@test
BBBさん\t[E-MAIL]\tBBB@test
CCCさん\t[E-MAIL]\tCCC@test
mysql(コマンドラインツール),Mysql Control Centerでは、test.sqlの中身をカット&ペーストして行っています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL mysqlがインストールされているのかどうか 1 2023/06/05 14:19
- MySQL mysqlがインストールされているのかわかりません 1 2023/06/05 02:26
- MySQL 参考書に従って入力したつもりでしたが、最後はエラーがでました。 1 2022/09/28 03:45
- MySQL あと、MySQLの文字コードはutf8 気になりますね 1 2022/12/01 07:22
- PostgreSQL PostgressからMySQL(MariaDB)へ構造を変更する際のTimestamp等について 2 2023/04/04 12:09
- その他(プログラミング・Web制作) mariadbでのエラー 1 2022/11/15 12:31
- MySQL XamppでインストールしたMySQLのフォルダのWinRARでのバックアップについて 1 2022/06/22 18:55
- その他(プログラミング・Web制作) findコマンドでのグロッピング 4 2022/07/04 17:51
- その他(データベース) c言語の問題です。これを踏まえてコーディングしたいのでおしえていただきたいです。 3 2023/08/03 09:27
- MySQL MySQL,JavaScript,PHPコードの結果を表示する方法を教えてください。 1 2023/02/13 17:49
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
下記の問合せを行うクエリを、 ...
-
#1062 - '0' は索引 'PRIMARY' ...
-
下記の問合せを行うクエリを、 ...
-
同一のユーザー、同一商品のと...
-
PhpMyAdminで作成して実行せよ...
-
Mac です。ローカルホストの ph...
-
テーブル名が可変の場合のクエ...
-
書籍の内容はまともでしょうか?
-
SQLでカラムを追加し、条件に合...
-
私の考えていることは ・mySQL ...
-
うまくいきません教えてくださ...
-
クエリを教えてください select...
-
「都道府県の面積の大きい順に...
-
mysqlがインストールされている...
-
PHP 画像のアップロード Qiita
-
php テーブルを作れない
-
エラー 1068 (42000): 複数の主...
-
MySQLのテーブル作成でハイフン...
-
AWSのRDSを無料枠で使用してお...
-
テーブル所有者、スキーマ所有...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SQLiteについて
-
PHP+MySQLから結果セット取得後...
-
PEARでレコード数の取得
-
MySQLで、INSERT文でエラー
-
updateがうまくできない。
-
SQL whereの中のif文について
-
コメントが消えてしまいます
-
【php+mysql】mysqlのレコード...
-
PHP+MySQLでデータ登録がうまく...
-
my sqlはどこにあるのか?
-
大阪府(25件)みたいなカウン...
-
接続ができません
-
SQLのVARCHARとVARCHAR2の違い
-
副問合せにLIKE文を使う方法は...
-
ODP.NETのバージョン確認
-
ERROR 1045 (28000) (using pas...
-
like句を使って日本語を検索す...
-
VBAで変数内に保持された二次配...
-
MySQLカラム名は日本語と英数字...
-
INT型は金額の型に使用するべき...
おすすめ情報