MySQLで特定の数字で始まるレコードを選択する方法|LIKE演算子の使い方を徹底解説
MySQLで特定の数字で始まるレコードを選択したい場合、LIKE演算子を使うのが最も簡単で効果的な方法です。LIKE演算子とワイルドカード(%)を組み合わせることで、前方一致検索をシンプルに実現できます。
この記事では、サンプルテーブルの作成からデータの挿入、実際に「90」で始まるレコードを抽出するまでの一連の手順を、実行結果つきでわかりやすく解説します。
1. サンプルテーブルを作成する
まず、以下のコマンドでテーブルを作成しましょう。
mysql> create table DemoTable
(
ClientId bigint,
ClientName varchar(40)
);
Query OK, 0 rows affected (0.82 sec)
2. テーブルにデータを挿入する
次に、INSERTコマンドを使ってレコードを追加していきます。
mysql> insert into DemoTable values(23568777,'Chris Brown');
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable values(9085544,'John Doe');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable values(9178432,'John Doe');
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable values(9078482,'David Miller');
Query OK, 1 row affected (0.17 sec)
3. 登録されたレコードを確認する
SELECT文ですべてのレコードを表示し、データが正しく登録されているか確認しましょう。
mysql> select *from DemoTable;
実行すると、次のような出力が得られます。
+----------+--------------+
| ClientId | ClientName |
+----------+--------------+
| 23568777 | Chris Brown |
| 9085544 | John Doe |
| 9178432 | John Doe |
| 9078482 | David Miller |
+----------+--------------+
4 rows in set (0.00 sec)
4. 特定の数字で始まるレコードを抽出するクエリ
ここからが本題です。「90」で始まるClientIDを持つレコードだけを取り出すには、WHERE句でLIKE '90%'と指定します。
mysql> select *from DemoTable where ClientId LIKE '90%';
実行結果は以下の通りです。
+----------+--------------+
| ClientId | ClientName |
+----------+--------------+
| 9085544 | John Doe |
| 9078482 | David Miller |
+----------+--------------+
2 rows in set (0.00 sec)
%は「任意の0文字以上の文字列」を表すワイルドカードです。'90%'と指定することで、「90で始まれば、その後にどんな数字・文字が続いてもよい」という条件になり、該当するレコードのみが抽出されます。
補足:数値型カラムでLIKEを使う際の注意点
- bigintなどの数値型カラムにLIKEを使うと、比較の際に数値が文字列へ暗黙的に変換されます。小規模なテーブルでは問題ありませんが、大量のデータを扱う場合はパフォーマンスに影響することがあります。
- 範囲指定でも同じ結果が得られます。たとえば7桁のIDなら
WHERE ClientId BETWEEN 9000000 AND 9099999のように書くことで、インデックスを活用した高速な検索が可能です。 - 先頭の2文字だけを比較する
LEFT(ClientId, 2) = '90'という書き方もあります。
まとめ
MySQLで特定の数字で始まるレコードを取得するには、LIKE '数字%'を使うのが最もシンプルです。条件の末尾にワイルドカード(%)を付けるだけで前方一致検索ができるため、電話番号や顧客IDなど、特定の番号帯でデータを絞り込みたい場面でとても役立ちます。用途に応じてBETWEEN句による範囲指定も併せて覚えておくとよいでしょう。
-
MySQLでテーブルの日付レコードを変更する方法|UPDATEとDATE_ADD()の使い方
MySQLで保存済みの日付データに年数を加算して変更したい場合、UPDATEコマンドとDATE_ADD()関数を組み合わせることで簡単に実現できます。ここでは、実際のSQLクエリ例を使いながら、日付レコードを変更する手順を順番に解説します。1. テーブルを作成するまず、日付型(date)のカラムを持つテーブルを作成します。mysql> create table DemoTable1984 ( ShippingDate date ); Query OK, 0 rows affected (0.00 sec)2. レコードを挿入する次に、INSERTコマンドを使ってテ
-
MySQLのREGEXPで特定の数値で始まる文字列+数値のレコードを取得する方法
REGEXPを使った特定の数値で始まるレコードの取得方法MySQLでは、REGEXP演算子(正規表現)を使用することで、特定の数値で始まる文字列と数値が混在したレコードを簡単に抽出できます。基本的な構文は以下の通りです。Select yourColumnName1,yourColumnName2 from yourTableName where yourColumnName2 REGEXP ^yourStringValue[yourNumericValue];サンプルテーブルの作成まずは動作確認のためのテーブルを作成しましょう。mysql> create table demo45 -&g