MySQLの結果セットに表示される「Empty set(空のセット)」とは?意味をわかりやすく解説
MySQLでクエリを実行した際に、結果セットとして「Empty set(空のセット)」と表示された場合、それは「クエリ自体は正常に実行されたが、条件に一致する行が1件も存在しない」ことを意味します。エラーが発生したわけではないという点が重要です。
以下の実行例で確認してみましょう。
mysql> Select * from Student_info WHERE Name = 'ABCD'; Empty set (0.00 sec)
この出力では、「Empty set」と実行時間(0.00秒)が表示されています。これは、SQL文の書き方自体は正しいものの、Student_infoテーブル内に「ABCD」という名前のレコードが存在しないため、該当するデータが1件も返されなかったことを示しています。
「Empty set」が表示される主なケース
- WHERE句の条件に一致するレコードがテーブル内に存在しない場合
- 検索対象の値のスペルや大文字・小文字が、実際のデータと一致していない場合
- テーブル自体にまだデータが1件も登録されていない場合
エラーとの違いに注意
SQL文に構文エラーや存在しないカラム名の指定などがあれば、MySQLはエラーメッセージを返します。一方、「Empty set」が表示される場合はクエリが正常に完了しており、単に結果が0件だったということです。
意図したデータが取得できない場合は、WHERE句の条件指定や、テーブルに格納されている実際の値(余分な空白、全角・半角の違いなど)を再確認するとよいでしょう。
-
MySQLでデータベースのデフォルト文字セットを設定する方法
MySQLでデータベースを作成する際、デフォルトの文字セット(キャラクタセット)を明示的に指定しておくと、日本語などのマルチバイト文字を扱う際の文字化けを防ぐことができます。ここでは、CREATE DATABASE文を使ってデフォルト文字セットを設定する方法を解説します。 デフォルト文字セットを設定する基本構文 データベース作成時にデフォルトの文字セットと照合順序(コレーション)を指定するには、以下の構文を使用します。 CREATE DATABASE IF NOT EXISTS データベース名 DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_
-
MySQLで結果セットを指定した順序どおりに取得する方法
MySQLでIN句を使ってレコードを取得すると、通常はテーブル内の格納順どおりに結果が返されます。しかし、「指定した値の並び順どおりに結果セットを取得したい」というケースもあります。そんなときは、FIND_IN_SET()関数とORDER BY句を組み合わせることで簡単に実現できます。サンプルテーブルを作成するまず、動作確認用のテーブルを作成します。mysql> create table DemoTable1563 -> ( -> StudentId int, -> StudentName varchar(20) -> );Query OK