
いつもお世話になっております。
いつも調べてはいるのですが、わからず困っております。
mysqlコマンドで-eを付けて、次のようにコマンドプロンプトでクエリを実行します。
mysql db1 -u root -p**** -e 'SELECT * FROM tb1'
すると失敗するのですが、シングルクォーテーションをダブルクォーテーションにすると実行できます。
mysql db1 -u root -p**** -e "SELECT * FROM tb1"
コマンドプロンプトでは" "にしなければいけないのでしょうか。
どなたかヒントでもけっこうですので、お教えいただけないでしょうか。
どうか、よろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
MySQL 4.1の日本語版マニュアルには、この辺の記述が見当たりませんでした。
MySQL 5.1の日本語版マニュアルには、この辺について記述がありました。http://dev.mysql.com/doc/refman/5.1/ja/mysql-com …
↓(リンク先)
http://dev.mysql.com/doc/refman/5.1/ja/command-l …
「ステートメントはシングル、またはダブルの引用符で囲まれている必要があります。もしこの引用符内の値を使用したい場合には、ステートメントにダブルの引用符を使用し、シングルの引用符をステートメント内の値のうちのいづれかに使用します。」
とあり、これを見ると、「シングルクォーテーションはだめ」とは読み取れません。ただし、SQL中に文字定数を指定する場合は、「ステートメント全体はダブルクォーテーションで囲み、文字定数はシングルクォーテーションで囲む」と読めます。
-e "select * from t1 where c1 like 'abc%'"
といった使い方ですね。
ちなみに、MySQL 5.1の英語版では、「The statements must be enclosed by quotation marks. 」としか記述がありません。
chukenkenkouさん、恐縮です。
本当にいつもいつも、申し訳ありません。
やはりシングルでも、MySQL側は問題ある、ということではないのですよね。
ありがとうございます。感謝しております。

No.3
- 回答日時:
コマンドプロンプトってwindowsのですよね?
windowsのcommand.comが、ブランクを含む文字列をひとつながりの引数として解釈するために、ダブルクォートが必要です。
MySQLは、そこで解釈された後の引数を受け取るので、statment外側のクォートが何であったかは関知しません。
そして、statment内の文字列指定に、シングルが使えるので、コマンドライン入力でも内部のクォートをいちいちエスケープしなくても簡単に外側と区別して記述できると言うことです。
ご回答ありがとうございます。
「ブランクを含む文字列をひとつながりの引数として解釈」する
ということなのですね。
ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
mysqlへのインポート処理がうま...
-
シングルクォーテーションとダ...
-
ODP.NETのバージョン確認
-
mysqlがインストールされている...
-
MySQLカラム名は日本語と英数字...
-
VBAで変数内に保持された二次配...
-
複数行のクエリを、まとめて実...
-
SQLのVARCHARとVARCHAR2の違い
-
MySQL(UTF-8)で ~ が文字化け...
-
「mysqld dead but subsys lock...
-
MySQL エラー Duplicate entry...
-
パスワード入力を省略したい
-
RPMのmysqlとmysql-serverの違い
-
さくらVPS+CakePHPがうまく動...
-
列数が多いと結果が行単位に改...
-
MYSQLサービス停止時にWindows...
-
ヌル値は記憶容量を必要としな...
-
AccessからOrcleのODBCリンクテ...
-
プライマリーキーの昇順でソー...
-
MySQLでAutoCommitをfalseにする
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
cseデータ閲覧時に文字化け
-
Mysql char
-
列名を式で指定することはでき...
-
シングルクォーテーションとダ...
-
パスワードの暗号化
-
MYSQLへのデータサイズの大きな...
-
文字列分割して、ソート出来ま...
-
postgre ⇒ mysql にした場合...
-
Usage: \\.<filename> | sourc...
-
MySQLに画像を保存したい
-
MySQLでのデータ保存場所の変更
-
"文字列"? > CSVデータをMySQL...
-
mysqlへのインポート処理がうま...
-
mysqlコマンドでSQL文が実行で...
-
'とはなんでしょうか
-
ERROR 1054 (42S22) 原因不明です
-
MAX()でENUMの内部番号が最大の...
-
MySQLのLOAD DATA INFILEコマン...
-
MySQLカラム名は日本語と英数字...
-
mysqlがインストールされている...
おすすめ情報