2011-07-29 18 views
2

コマンドラインを使用してMySQLデータベースからデータをエクスポートするSQLスクリプトを実行すると、上記のエラーが発生します。 phpMyAdminでSQLクエリを実行するとうまく動作しますが、コマンドラインから実行するとエラーがスローされます。次のようにmy_exportエラー1行目:不明なコマンド ''

cat my_export | mysql -uxyzuser -pabcpassword mydb > export072911.txt 

にコードを次のとおりです:

SELECT CONCAT(custfirstname, ' ', custlastname) AS fullname, custcompany, \ 
SPACE(10) AS custtitle, custaddressone, custaddresstwo, custcity, custstate, \ 
custzip, SPACE(10) AS dummy, custphone, SPACE(10) AS custfax, custemail, \ 
event_id, SPACE(10) AS ticket1, SPACE(10) AS ticket2, \ 
SPACE(10) AS ticket3, SPACE(10) AS ticket4, orderdate, b.quantity, \ 
FROM order_master a \ 
LEFT JOIN order_detail b ON b.order_master_id = a.id \ 
LEFT JOIN customer c ON c.email = a.custemail \ 
WHERE a.orderdate > '2010-12-01'\ 
AND a.event_id = '30' \ 
AND a.orderstatus = 'O' \ 
AND b.litype = 'ITEM' \ 
AND b.reftag = 'PKG' \ 
ORDER BY a.orderdate DESC; 

答えて

3

あなたが安全にすべてのバックスラッシュを削除し、むしろ入力のリダイレクトを使用することができます。ここ

は、私が使用していますコマンドラインがあります配管よりも。バックスラッシュは、SQLをシェル変数として扱い、配管やリダイレクトには使用しない場合に必要です。パイプは限りバックスラッシュが削除されるように、入力のリダイレクトと同じくらいよく働くように私自身の簡単なテストの後

mysql -uxyzuser -pabcpassword mydb <my_export> export072911.txt 

UPDATEは、それが見えます。

+0

コマンドライン(たとえば、mysqlツールの内部)でこれを行う方法について考えてみましょう。 Enter/type /を押すと、コマンド終端記号 ';'を挿入するまで/ etcを入力し、コマンドラインでデータを取得するだけです。同じことがリダイレクトにも当てはまります:) – KevinDTimm

+0

うーん、うまくいきました。 MichaelとKevinDTimmに感謝します。 – newbie

関連する問題