MySQLの「<>」演算子とは?意味と使い方を実例付きで解説
MySQLにおける「<>」演算子の意味
MySQLで使われる記号「<>」は、「等しくない」ことを判定する比較演算子であり、おなじみの「!=」(NOT EQUAL)演算子とまったく同じ働きをします。どちらも結果はブール値としてtinyint(1)型で返され、条件が成立すれば1、成立しなければ0となります。
ケース1:「!=」演算子を使用する場合
まずは「!=」演算子を使ったシンプルな例です。次のクエリを実行してみましょう。
mysql> select 3!=5;
実行結果は以下の通りです。
+------+ | 3!=5 | +------+ | 1 | +------+ 1 row in set (0.00 sec)
ケース2:「<>」演算子を使用する場合
続いて、「<>」演算子を使った場合のクエリです。
mysql> select 3 <> 5;
実行結果は以下の通りです。
+--------+ | 3 <> 5 | +--------+ | 1 | +--------+ 1 row in set (0.00 sec)
このように、両者はまったく同じ結果を返します。「<>」演算子はテーブルから行の集合を抽出する際にも活用でき、さらにANSI SQLの標準規格として定義されている点が特徴です。
実際のテーブルで「<>」演算子を試してみる
ここからは、サンプルテーブルを使って「<>」演算子の実践的な使い方を確認していきます。まずはテーブルを作成しましょう。
mysql> create table NotEqualOperator -> ( -> StudentId int, -> StudentName varchar(100), -> StudentSection varchar(10) -> ); Query OK, 0 rows affected (0.78 sec)
次に、INSERT文でレコードを追加していきます。
mysql> insert into NotEqualOperator values(1,'John','A'); Query OK, 1 row affected (0.19 sec) mysql> insert into NotEqualOperator values(2,'Carol','B'); Query OK, 1 row affected (0.19 sec) mysql> insert into NotEqualOperator values(3,'Sam','A'); Query OK, 1 row affected (0.15 sec) mysql> insert into NotEqualOperator values(4,'Mike','B'); Query OK, 1 row affected (0.23 sec) mysql> insert into NotEqualOperator values(5,'Bob','B'); Query OK, 1 row affected (0.19 sec) mysql> insert into NotEqualOperator values(6,'David','B'); Query OK, 1 row affected (0.14 sec) mysql> insert into NotEqualOperator values(7,'Ramit','A'); Query OK, 1 row affected (0.18 sec)
SELECT文で、登録済みの全レコードを表示してみます。
mysql> select *from NotEqualOperator;
実行結果は以下の通りです。
+-----------+-------------+----------------+ | StudentId | StudentName | StudentSection | +-----------+-------------+----------------+ | 1 | John | A | | 2 | Carol | B | | 3 | Sam | A | | 4 | Mike | B | | 5 | Bob | B | | 6 | David | B | | 7 | Ramit | A | +-----------+-------------+----------------+ 7 rows in set (0.00 sec)
先述の通り、「<>」演算子は条件に一致しない行の集合を取得したい場合に便利です。ここでは、上記テーブルの中から「セクションAに所属していない学生」だけを絞り込んでみましょう。
クエリは以下の通りです。
mysql> select *from NotEqualOperator where StudentSection <>'A';
実行結果は以下の通りです。
+-----------+-------------+----------------+ | StudentId | StudentName | StudentSection | +-----------+-------------+----------------+ | 2 | Carol | B | | 4 | Mike | B | | 5 | Bob | B | | 6 | David | B | +-----------+-------------+----------------+ 4 rows in set (0.00 sec)
まとめ
MySQLの「<>」演算子は、「!=」と完全に同じ意味を持つ「等しくない」比較用の演算子であり、ANSI SQL標準にも準拠しています。WHERE句と組み合わせることで、指定した値以外のレコードを簡単に抽出できるため、日々のデータ検索や集計作業でぜひ活用してみてください。
-
MySQLクエリにおけるスラッシュ(/)の意味とは?割り算の使い方を実例で解説
MySQLクエリでスラッシュ(/)は何を意味するのかMySQLのクエリにおいて、スラッシュ(/)は除算(割り算)を表す演算子です。2つの数値を割り算する際に使用できます。ここでは、2つのカラムの値を割り算し、その結果を新しいカラムとして表示する具体例を見ていきましょう。サンプルテーブルを作成するまず、以下のようにテーブルを作成します。mysql> create table DemoTable719 ( FirstNumber int, SecondNumber int);Query OK, 0 rows affected (0.57 sec)レコードを挿入するINSERTコマ
-
MySQLでデータベース内のテーブル数を表示するクエリの書き方
INFORMATION_SCHEMA.TABLESを使ってテーブル数を取得するここでは例として、「WEB」というデータベースを使用しているものとします。このデータベース内に存在するテーブルの総数を調べたい場合、MySQLではINFORMATION_SCHEMA.TABLESを利用するのが便利です。INFORMATION_SCHEMAは、MySQLサーバーが管理しているメタデータ(データベース名、テーブル名、カラム情報など)を格納する仮想データベースであり、これを参照することでスキーマに関する情報をSQLで簡単に取得できます。テーブル数を表示するクエリ「WEB」データベース内のテーブル数を表示す