MySQLのNOT LIKE演算子で特定のレコードを除外する方法|テーブルデータのフィルタリング条件
MySQLでテーブルから特定のレコードだけを除外して取得したい場合、NOT LIKE演算子を使用すると簡単に実現できます。この記事では、サンプルテーブルの作成からデータの挿入、そしてNOT LIKE演算子を使ったフィルタリングまで、具体的な手順を解説します。
1. サンプルテーブルを作成する
まずは動作確認用のテーブルを作成しましょう。
mysql> create table DemoTable
-> (
-> StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> StudentName varchar(20),
-> StudentAdmissionYear varchar(20)
-> );
Query OK, 0 rows affected (1.22 sec)
ここでは、学生ID(StudentId)、氏名(StudentName)、入学年度(StudentAdmissionYear)の3つのカラムを持つ「DemoTable」を作成しました。StudentIdは自動採番される主キーとして設定しています。
2. テーブルにレコードを挿入する
続いて、INSERT文を使ってテーブルにいくつかのレコードを追加します。
mysql> insert into DemoTable(StudentName,StudentAdmissionYear) values('Chris','2017');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable(StudentName,StudentAdmissionYear) values('David','2015');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable(StudentName,StudentAdmissionYear) values('Bob','2019');
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable(StudentName,StudentAdmissionYear) values('Carol','2015');
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable(StudentName,StudentAdmissionYear) values('Sam','2018');
Query OK, 1 row affected (0.12 sec)5人分の学生データを挿入しました。このうち、入学年度が「2015」のレコードが2件含まれている点に注目してください。
3. テーブルの全レコードを確認する
SELECT文を実行して、現在テーブルに格納されているすべてのレコードを表示してみましょう。
mysql> select *from DemoTable;
実行結果は以下のとおりです。
+-----------+-------------+----------------------+
| StudentId | StudentName | StudentAdmissionYear |
+-----------+-------------+----------------------+
| 1 | Chris | 2017 |
| 2 | David | 2015 |
| 3 | Bob | 2019 |
| 4 | Carol | 2015 |
| 5 | Sam | 2018 |
+-----------+-------------+----------------------+
5 rows in set (0.00 sec)
4. NOT LIKE演算子で特定のレコードを除外する
それが本題です。特定の条件に該当するレコードを結果から取り除くには、WHERE句とNOT LIKE演算子を組み合わせます。以下のクエリでは、入学年度が「2015」以外のレコードのみを抽出しています。
mysql> select *from DemoTable
-> where StudentAdmissionYear not like '%2015%';
実行すると、次のような出力が得られます。StudentAdmissionYearが「2015」のレコード(DavidとCarol)が除外されていることがわかります。
+-----------+-------------+----------------------+
| StudentId | StudentName | StudentAdmissionYear |
+-----------+-------------+----------------------+
| 1 | Chris | 2017 |
| 3 | Bob | 2019 |
| 5 | Sam | 2018 |
+-----------+-------------+----------------------+
3 rows in set (0.04 sec)
まとめ
このように、NOT LIKE '%パターン%'を使うことで、指定した文字列パターンに一致しないレコードだけを柔軟に抽出できます。%は任意の文字列にマッチするワイルドカードなので、部分一致での除外にも対応可能です。なお、完全一致の値だけで除外したい場合は、よりシンプルに<>(または!=)演算子を使うことも検討するとよいでしょう。
-
JavaでMySQLデータベースのテーブルから最後のレコードを取得する方法
MySQLデータベースからデータを取得するには、JavaのexecuteQuery()メソッドを使用します。本記事では、テーブルに登録された最後のレコード(最新の1件)をJavaプログラムで取得する手順を、サンプルコード付きでわかりやすく解説します。1. MySQLデータベースにテーブルを作成するまず、MySQLデータベース上にテーブルを用意します。ここでは「sample」データベースに、以下のようなテーブルを作成します。mysql> create table javaGetDataDemo -> ( -> Id int NOT NULL AUTO_INCREMENT PRI
-
Javaを使ってMySQLテーブルにレコードを挿入する方法
はじめに本記事では、JavaのJDBC(Java Database Connectivity)を使用して、MySQLデータベースのテーブルにレコードを挿入する手順を解説します。まずテーブルを作成し、その後Javaプログラムからデータを登録するまでの一連の流れを見ていきましょう。1. MySQLでテーブルを作成するまず、データを挿入するためのテーブルを作成します。以下はMySQLでテーブルを作成するクエリです。mysql> create table DemoTable( Id int, Name varchar(30),&