MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLのWHERE句で「!=」(等しくない)を使う方法をわかりやすく解説

MySQLのWHERE句で「等しくない」条件を使う方法

MySQLでは、WHERE句で「等しくない」条件を指定する際に、!=演算子または<>(不等号演算子)を使用できます。どちらも同じ意味を持ち、指定した値と一致しないレコードだけを抽出できます。

基本構文

SELECT * FROM テーブル名 WHERE カラム名 <> 条件値;

<>の代わりに!=を使っても、まったく同じ動作になります。

サンプルテーブルの作成

構文を理解するために、まずテーブルを作成しましょう。以下のクエリで「NotEqualsDemo」というテーブルを作成します。

mysql> CREATE TABLE NotEqualsDemo
    -> (
    -> Id int
    -> );
Query OK, 0 rows affected (1.03 sec)

レコードの挿入

次に、INSERTコマンドを使ってテーブルにいくつかのレコードを挿入します。

mysql> INSERT INTO NotEqualsDemo VALUES(1);
Query OK, 1 row affected (0.15 sec)

mysql> INSERT INTO NotEqualsDemo VALUES(2);
Query OK, 1 row affected (0.18 sec)

mysql> INSERT INTO NotEqualsDemo VALUES(3);
Query OK, 1 row affected (0.10 sec)

mysql> INSERT INTO NotEqualsDemo VALUES(4);
Query OK, 1 row affected (0.18 sec)

mysql> INSERT INTO NotEqualsDemo VALUES(5);
Query OK, 1 row affected (0.14 sec)

登録データの確認

SELECT文ですべてのレコードを表示して、データが正しく登録されているか確認しましょう。

mysql> SELECT * FROM NotEqualsDemo;

実行結果は以下の通りです。

+------+
| Id   |
+------+
| 1    |
| 2    |
| 3    |
| 4    |
| 5    |
+------+
5 rows in set (0.00 sec)

「等しくない」条件を実行してみる

それでは、冒頭で紹介した構文を実際に使ってみましょう。以下のクエリでは<> 3という条件を適用しているため、「Idが3以外」のレコードだけが返されます。

mysql> SELECT * FROM NotEqualsDemo WHERE Id <> 3;

実行結果は以下の通りです。

+------+
| Id   |
+------+
| 1    |
| 2    |
| 4    |
| 5    |
+------+
4 rows in set (0.00 sec)

このように、Idが3のレコードだけが除外され、残りの4件が取得できました。同じクエリをWHERE Id != 3として書いても、まったく同じ結果になります。

補足:NULL値の扱いに注意

<>!=は、NULL値との比較では成立しません。対象カラムの値がNULLであるレコードは、結果セットから自動的に除外されます。NULLも含めて扱いたい場合は、IS NOT NULLIFNULL()関数を組み合わせて条件を設計する必要がありますので、実務で利用する際は注意しましょう。

  1. MySQLクエリで「〜より大きくない」条件を記述する方法

    MySQLで「〜より大きくない」を表すには?MySQLのクエリにおいて「〜より大きくない(not greater than)」という条件は、比較演算子の「〜以下(<=)」を使うことで簡単に表現できます。基本の構文は次のとおりです。select * from テーブル名 where カラム名<=値;サンプルテーブルを作成するまず、動作確認用のテーブルを作成しましょう。mysql> create table DemoTable1480 -> ( -> StudentName varchar(40), -> StudentMarks int

  2. 【C#】LINQで「NOT IN」クエリを実現する方法|Except演算子の使い方を徹底解説

    Except演算子とは C#のLINQにおける Except 演算子は、IEnumerable<T> インターフェースをサポートするデータソースに対して使用できる集合演算のひとつです。すべてのLINQクエリ式、およびほとんどのLINQメソッドは IEnumerable<T> を返すため、この演算子を使えばLINQクエリの結果同士で差集合(差分)の計算を簡単に行えます。 Except 演算子は「1つ目のリストに含まれる項目から、2つ目のリストに含まれる項目を除外した結果」を返します。SQLでいうところの「NOT IN」とまったく同じ働きをするので、覚えておくと非常に便利で