MySQLのテーブルから特定の行を除外する方法をわかりやすく解説
MySQLでテーブルから特定の行を除外して取得したい場合は、比較演算子 <>(等しくない)を使用します。なお、<> の代わりに != を使っても同じ結果が得られます。
ここでは、実際にテーブルを作成し、データを挿入したうえで、特定の行を除外するSELECT文の使い方を順番に解説します。
1. テーブルの作成
まず、サンプル用のテーブルを作成します。
mysql> create table DemoTable
-> (
-> Id int,
-> FirstName varchar(100)
-> );
Query OK, 0 rows affected (0.58 sec)
2. レコードの挿入
次に、INSERTコマンドを使ってテーブルにレコードを追加します。
mysql> insert into DemoTable values(1,'John'); Query OK, 1 row affected (0.12 sec) mysql> insert into DemoTable values(2,'Chris'); Query OK, 1 row affected (0.15 sec) mysql> insert into DemoTable values(3,'Robert'); Query OK, 1 row affected (0.26 sec) mysql> insert into DemoTable values(4,'David'); Query OK, 1 row affected (0.13 sec)
3. 全レコードの確認
SELECT文を実行して、テーブル内のすべてのレコードを表示してみましょう。
mysql> select *from DemoTable;
出力結果
+------+-----------+ | Id | FirstName | +------+-----------+ | 1 | John | | 2 | Chris | | 3 | Robert | | 4 | David | +------+-----------+ 4 rows in set (0.00 sec)
4. 特定の行を除外するクエリ
ここからが本題です。WHERE句と <> を組み合わせることで、指定した値に一致しない行だけを取得できます。以下の例では、Id が 2 の行(Chris)を除外しています。
mysql> select Id,FirstName from DemoTable where Id <> 2;
出力結果
+------+-----------+ | Id | FirstName | +------+-----------+ | 1 | John | | 3 | Robert | | 4 | David | +------+-----------+ 3 rows in set (0.00 sec)
このように、Id が 2 の「Chris」の行だけが除外され、残りの3件が表示されました。文字列のカラムに対しても使用できるため、たとえば where FirstName <> 'John' のように書けば、名前が「John」以外の行を取得することも可能です。
-
MySQLでデータベース内のテーブル名一覧を取得する方法
MySQLでデータベースに存在するテーブル名の一覧を取得したい場合は、SHOW TABLESステートメントを使用します。SQLクライアントやコマンドラインから手軽に実行でき、指定したデータベース内の全テーブルを簡単に確認できます。基本構文テーブル名を取得するための基本構文は以下のとおりです。show tables from yourDatabaseName;yourDatabaseName の部分に、対象となるデータベース名を指定してください。実行例それでは、サンプルデータベース「hb_student_tracker」に対して実際にクエリを実行し、テーブル名を取得してみましょう。mysql&g
-
MySQLでテーブルから特定の行を抽出するクエリの書き方
MySQLでは、WHERE句とORDER BY、LIMITを組み合わせることで、テーブルから条件に合致する特定の行だけを効率的に取得できます。本記事では、実際にサンプルテーブルを作成し、特定の行を抽出するクエリの実行手順をわかりやすく解説します。 1. サンプルテーブルの作成 まず、CREATE TABLE文を使ってサンプル用のテーブルを作成します。ここでは「Section(組)」と「StudentName(生徒名)」という2つのカラムを持つテーブルを用意しました。 mysql> create table DemoTable1972 ( Section char(1),