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

MySQLで「等しくない」演算子(<>)を使う方法をわかりやすく解説

MySQLにおける「等しくない」演算子とは

MySQLで「等しくない」という条件を指定したい場合は、<> 演算子を使用します。この演算子は、指定した値と一致しないレコードのみを抽出したい場合に非常に便利です。

なお、MySQLでは != 演算子も同じ意味で使用できますが、SQL標準に準拠しているのは <> の方です。移植性を考慮すると、<> を使うことが推奨されます。

基本構文

「等しくない」条件を使ったSELECT文の基本構文は以下の通りです。

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

実際に試してみよう:サンプルテーブルの作成

それでは、実際に動作を確認するためにテーブルを作成してみましょう。まずは以下のクエリで「NotEqualDemo」というテーブルを作成します。

mysql> create table NotEqualDemo
-> (
-> ProductId int
-> );
Query OK, 0 rows affected (0.53 sec)

次に、INSERT文を使っていくつかのレコードを挿入します。

mysql> insert into NotEqualDemo values(101);
Query OK, 1 row affected (0.13 sec)

mysql> insert into NotEqualDemo values(102);
Query OK, 1 row affected (0.23 sec)

mysql> insert into NotEqualDemo values(103);
Query OK, 1 row affected (0.11 sec)

mysql> insert into NotEqualDemo values(104);
Query OK, 1 row affected (0.13 sec)

mysql> insert into NotEqualDemo values(105);
Query OK, 1 row affected (0.12 sec)

挿入したデータの確認

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

mysql> select *from NotEqualDemo;

実行結果は以下のようになります。

+-----------+
| ProductId |
+-----------+
| 101       |
| 102       |
| 103       |
| 104       |
| 105       |
+-----------+
5 rows in set (0.00 sec)

<> 演算子で特定の値以外を抽出する

ここでは、<> 演算子を使って「104以外」のデータを抽出してみます。以下のようにWHERE句で条件を指定すると、104を除くすべてのデータが表示されます。

mysql> select *from NotEqualDemo where ProductId <> 104 or ProductId is null;

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

+-----------+
| ProductId |
+-----------+
| 101       |
| 102       |
| 103       |
| 105       |
+-----------+
4 rows in set (0.00 sec)

NULLを扱う際の注意点

上記のクエリにある or ProductId is null という条件には重要な意味があります。SQLでは、NULLに対して比較演算子を使うと結果がUNKNOWN(不明)になり、その行は抽出されません。そのため、「104以外のすべての行」を確実に取得したい場合は、明示的に is null 条件を追加する必要があります。

もしNULLが含まれる可能性があるカラムで「〜以外」の検索を行う際は、この点に注意しておきましょう。

まとめ

  • MySQLで「等しくない」条件には <> 演算子を使用する(!= も同様に動作する)
  • 基本構文:WHERE カラム名 <> 値
  • NULLは比較演算子での判定ができないため、必要に応じて is null を組み合わせる

これらのポイントを押さえておけば、データの絞り込み処理を正確かつ効率的に行うことができます。

  1. MySQLクエリでテーブル内の2番目に大きい値を取得する方法

    MySQLでテーブル内の2番目に大きい(最大から2番目の)値を取得したい場合は、LIMIT 1 OFFSET 1 を使用すると簡単に実現できます。この記事では、実際のテーブル作成からデータ挿入、そして2番目に大きい値を取得するクエリまで、手順を追って解説します。1. テーブルを作成するまず、サンプル用のテーブルを作成します。mysql> create table DemoTable -> ( -> Value int -> ); Query OK, 0 rows affected (0.92 sec)2. レコードを挿入する次に、INSERT文を

  2. MySQLクエリでLIKE句を2回使う方法|OR条件で複数パターンを検索する

    MySQLでは、LIKE句を1つのクエリ内で2回以上使用することで、複数のパターンに一致するレコードを柔軟に抽出できます。この記事では、実際にテーブルを作成し、LIKE句を2回組み合わせた検索クエリの書き方を手順を追って解説します。 1. サンプルテーブルを作成する まず、検索対象となるテーブルを作成します。 mysql> create table DemoTable2009 ( Name varchar(20) ); Query OK, 0 rows affected (0.51 sec) 2. テーブルにレコードを挿入する INSERT文を使って、いくつかの名前データを登録し