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

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句による範囲指定も併せて覚えておくとよいでしょう。

  1. 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コマンドを使ってテ

  2. MySQLのREGEXPで特定の数値で始まる文字列+数値のレコードを取得する方法

    REGEXPを使った特定の数値で始まるレコードの取得方法MySQLでは、REGEXP演算子(正規表現)を使用することで、特定の数値で始まる文字列と数値が混在したレコードを簡単に抽出できます。基本的な構文は以下の通りです。Select yourColumnName1,yourColumnName2 from yourTableName where yourColumnName2 REGEXP ^yourStringValue[yourNumericValue];サンプルテーブルの作成まずは動作確認のためのテーブルを作成しましょう。mysql> create table demo45 -&g