Webサイト制作コースのお申し込みはこちら Webサイト制作コースのお申し込みはこちら

ノットイコール(not equal)とは?

ノットイコールは、値が等しくないという意味です。

「NOT」は条件式の論理否定で「条件式以外の」や「条件式ではない」というようになります。

SQLにおいては、WHERE句などの条件式で使われます。

表現方法は次の通りです。

  • <>
  • !=

上記の演算子はMySQLやPostgreSQL、Oracleなど、さまざまなDBMSで使われるので覚えておきましょう。

SQLにはノットイコール以外にも、よく使われる演算子がいくつかあります。

詳しくは以下の記事で解説していますので、ぜひ参考にしてみてください!

【関連記事】

▶︎【SQLの基本】比較演算子の使い方について

ノットイコールの使い方

では実際に、SQLでのノットイコールの使い方を見ていきましょう。

例えば、次のようなテーブルがあるとしましょう。

mysql> SELECT * FROM user_list;
+---------+--------+------+
| user_id | name   | age  |
+---------+--------+------+
|       1 | Tanaka |   23 |
|       2 | Okada  |   35 |
|       3 | Yamada |   28 |
+---------+--------+------+
3 rows in set (0.01 sec)

この user_listテーブルの ageカラム の値が 23と等しくないデータを取得してみます。

次のように記述しましょう。

SELECT *FROM user_list WHERE age <> 23;

上記のSQLを実行すると次のようになります。

mysql> SELECT *FROM user_list WHERE age <> 23;
+---------+--------+------+
| user_id | name   | age  |
+---------+--------+------+
|       2 | Okada  |   35 |
|       3 | Yamada |   28 |
+---------+--------+------+
2 rows in set (0.00 sec)

ちゃんと ageカラムの値が23以外のデータを取得できました。

また、次のように「!=」で記述しても同じ結果が得られます。

mysql> SELECT *FROM user_list WHERE age != 23;
+---------+--------+------+
| user_id | name   | age  |
+---------+--------+------+
|       2 | Okada  |   35 |
|       3 | Yamada |   28 |
+---------+--------+------+
2 rows in set (0.00 sec)

Oracleの場合

Oracleデータベースでノットイコールを使う場合、「<>」「!=」以外にも次の演算子があります。

  • ^=
  • ¬=

Oracle特有の演算子ですので、Oracleデータベースを使っている場合は覚えておきましょう。

ノットイコールでStringを判定

ノットイコールはString型の判定もできるのですか?

はい、可能です!サンプルを使って確認してみましょう。

先ほどのテーブルを使って、ノットイコールでStringを判定してみます。

nameカラム の値が「Okada」と等しくないデータを取得してみます。

mysql> SELECT * FROM user_list WHERE name <> 'Okada';
+---------+--------+------+
| user_id | name   | age  |
+---------+--------+------+
|       1 | Tanaka |   23 |
|       3 | Yamada |   28 |
+---------+--------+------+
2 rows in set (0.01 sec)

このように、期待したデータが取得できました。

なお、大文字・小文字の区別はないため小文字で比較しても同様の結果を得られます。

mysql> SELECT * FROM user_list WHERE name <> 'okada';
+---------+--------+------+
| user_id | name   | age  |
+---------+--------+------+
|       1 | Tanaka |   23 |
|       3 | Yamada |   28 |
+---------+--------+------+
2 rows in set (0.00 sec)

mysql> SELECT * FROM user_list WHERE name <> 'OKADA';
+---------+--------+------+
| user_id | name   | age  |
+---------+--------+------+
|       1 | Tanaka |   23 |
|       3 | Yamada |   28 |
+---------+--------+------+
2 rows in set (0.00 sec)

ノットイコールでNULLの判定はできる?

ノットイコールを使って「NULL値」の判定もできますか?

NULL値はノットイコールで判定できません。判定をする場合は、「IS (NOT) NULL」を使います。その使い方を見ていきましょう。

例えば、先ほどのテーブルにNULL値の入ったデータを追加します。

mysql> SELECT * FROM user_list;
+---------+--------+------+
| user_id | name   | age  |
+---------+--------+------+
|       1 | Tanaka |   23 |
|       2 | Okada  |   35 |
|       3 | Yamada |   28 |
|       4 | NULL   | NULL |
+---------+--------+------+
4 rows in set (0.00 sec)

このテーブル内の ageカラム の値が「NULL」のデータを取得してみましょう。

次のように記述します。

mysql> SELECT * FROM user_list WHERE age IS NULL;
+---------+------+------+
| user_id | name | age  |
+---------+------+------+
|       4 | NULL | NULL |
+---------+------+------+
1 row in set (0.00 sec)

上記のように、NULL値が入ったデータが取得できました。

一方、NULL値以外の値が入ったデータを取得するには、「IS NOT NULL」を使います。

mysql> SELECT * FROM user_list WHERE age IS NOT NULL;
+---------+--------+------+
| user_id | name   | age  |
+---------+--------+------+
|       1 | Tanaka |   23 |
|       2 | Okada  |   35 |
|       3 | Yamada |   28 |
+---------+--------+------+
3 rows in set (0.00 sec)

このように、期待した通りの結果が得られました。

ポテパンダの一言メモ

NULL値の判定をする場合は、ノットイコールではなく「IS (NOT) NULL」を使います!

なお、IS NULLの使い方については、次の記事で詳しく解説していますので参考までに。

【関連記事】

▶︎SQLのNULL比較にはIS NULL演算子を使う ストアドファンクションでも同様

まとめ

SQLのノットイコールの使い方について解説しました。

ノットイコールはテーブル内の検索においてよく使われる演算子です。

また、ノットイコール以外にもよく使われる演算子があるので、合わせて覚えておくとよいでしょう。

ぜひこの記事や他記事を参考に、使い方をマスターしてください!

エンジニアになりたい人に選ばれるプログラミングスクール「ポテパンキャンプ 」

ポテパンキャンプは卒業生の多くがWebエンジニアとして活躍している実践型プログラミングスクールです。 1000名以上が受講しており、その多くが上場企業、ベンチャー企業のWebエンジニアとして活躍しています。

基礎的な学習だけで満足せず、実際にプログラミングを覚えて実践で使えるレベルまで学習したいという方に人気です。 プログラミングを学習し実践で使うには様々な要素が必要です。

それがマルっと詰まっているポテパンキャンプでプログラミングを学習してみませんか?

卒業生の多くがWebエンジニアとして活躍

卒業生の多くがWeb企業で活躍しております。
実践的なカリキュラムをこなしているからこそ現場でも戦力となっております。
活躍する卒業生のインタビューもございますので是非御覧ください。

経験豊富なエンジニア陣が直接指導

実践的なカリキュラムと経験豊富なエンジニアが直接指導にあたります。
有名企業のエンジニアも多数在籍し品質高いWebアプリケーションを作れるようサポートします。

満足度高くコスパの高いプログラミングスクール「ポテパンキャンプ」

運営する株式会社ポテパンは10,000人以上のエンジニアのキャリアサポートを行ってきております。
そのノウハウを活かして実践的なカリキュラムを随時アップデートしております。

代表の宮崎もプログラミングを覚えサイトを作りポテパンを創業しました。
本気でプログラミングを身につけたいという方にコスパ良く受講していただきたいと思っておりますので、気になる方はぜひスクール詳細をのぞいてくださいませ。