MySQL「ERROR: No query specified」の意味と解決策を徹底解説!
投稿日: 2011/11/19 更新日: 2017/10/26
MySQL
MySQLにメタコマンド『\G』というものがあります。
出力結果を縦に表示してくれる優れものなのですが、うっかりエラーを出してしまうときがありますよね。
このエラーはなぜ出てしまうのか、わかりにくいので私なりにまとめてみました。
これです。
ERROR: No query specified
「No query specified」の意味
エラーの意味
「クエリーがありませんよ」と言っています。
例えばそのエラーを簡単に出すなら;
mysql> ; ERROR: No query specified
出ました。
なぜエラーが出るの?
恐らくこの記事にたどり着いた人は、「クエリーを書いているのに、なぜエラーが出るのだろう?」と疑問になった人が見ているのだと思います。
その答えはずばり「\Gは;
よくそのエラーが発生してしまう再現手順は次の通りです。
よくあるエラーの発生手順
1. まずセレクトする。
特に普通の操作です。
とあるテーブルをセレクトしたとします
mysql> select * from test_table; +----+------+ | id | name | +----+------+ | 1 | 壱 | | 2 | 弐 | | 3 | 参 | +----+------+ 3 rows in set (0.00 sec)
2. 縦に表示したいなぁと思って\Gをつける。
そのあと、縦に表示したいなぁ、と思ってさっきのクエリーの後ろに『\G』をつけてみます。
mysql> select * from test_table \G; *************************** 1. row *************************** id: 1 name: 壱 *************************** 2. row *************************** id: 2 name: 弐 *************************** 3. row *************************** id: 3 name: 参 3 rows in set (0.00 sec) ERROR: No query specified
結果、エラーメッセージが表示されてしまいます。
なぜそのようなことが起こるのか
私は理由はたったひとつだと思います。
クエリーの最後には;
『\G』の後ろに;
まとめ
SQLは、セパレーターとなる;
なので、思い込みや日頃の癖で、クエリーの最後にセミコロンをつけてしまうのだと思います。
『\G』は;
最後は『\G』で閉めましょうね。
mysql> select * from test_table \G *************************** 1. row *************************** id: 1 name: 壱 *************************** 2. row *************************** id: 2 name: 弐 *************************** 3. row *************************** id: 3 name: 参 3 rows in set (0.00 sec)