
いつもお世話になっております。
いつも調べてはいるのですが、わからず困っております。
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ランキング
-
cseデータ閲覧時に文字化け
-
シングルクォーテーションとダ...
-
なにが原因???
-
ODP.NETのバージョン確認
-
like句を使って日本語を検索す...
-
副問合せにLIKE文を使う方法は...
-
Excel VBA SelectedItems
-
パスワード入力を省略したい
-
cseデータ閲覧時の文字化け
-
MySQLカラム名は日本語と英数字...
-
列数が多いと結果が行単位に改...
-
mysqlがインストールされている...
-
mysqldが実行できない
-
経過時間(hhmmdd)をDATE型には...
-
mySQLで複雑な演算
-
テーブル作成でエラーが出てき...
-
MySQLにリモートホストから接続...
-
SQL開発環境ソフトウェアである...
-
SQLのVARCHARとVARCHAR2の違い
-
RPMのmysqlとmysql-serverの違い
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
mysqlコマンドでSQL文が実行で...
-
シングルクォーテーションとダ...
-
cseデータ閲覧時に文字化け
-
mysqlへのインポート処理がうま...
-
ERROR 1054 (42S22) 原因不明です
-
MySQLのLOAD DATA INFILEコマン...
-
mysqlをバックアップするツール...
-
SELECTした値との比較
-
MySQLリファレンスマニュアル(...
-
mysqlの操作について
-
mysqlのmatch() against()で検...
-
PHP+mysql データ重複登録
-
mysql超初心者です。テーブルへ...
-
MAX()でENUMの内部番号が最大の...
-
now()
-
PHPの質問です、ご回答いただけ...
-
MySQLで困っています。。
-
MySQLカラム名は日本語と英数字...
-
mysqlがインストールされている...
-
副問合せにLIKE文を使う方法は...
おすすめ情報