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

MySQLのLIKE演算子を使って特定の文字で始まる名前を取得する方法

MySQLのLIKEで特定の文字から始まるレコードを検索する

MySQLで特定の文字で始まる名前を取得したい場合は、LIKE演算子とワイルドカード「%」を組み合わせて使用します。ここでは、実際にテーブルを作成し、データを挿入して、特定の文字で始まる名前を抽出する手順を解説します。

1. サンプルテーブルの作成

まず、学生の名前を格納するテーブルを作成します。

mysql> create table DemoTable
(
    StudentFirstName varchar(20)
);
Query OK, 0 rows affected (1.01 sec)

2. レコードの挿入

次に、INSERTコマンドを使ってテーブルにいくつかのレコードを挿入します。

mysql> insert into DemoTable values('John');
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable values('Carol');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable values('Johnny');
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable values('Robert');
Query OK, 1 row affected (0.20 sec)
mysql> insert into DemoTable values('Chris');
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable values('Ramit');
Query OK, 1 row affected (0.18 sec)

3. テーブル内の全レコードを確認

SELECTコマンドでテーブルの内容を表示して確認してみましょう。

mysql> select *from DemoTable;

上記のクエリを実行すると、以下のような結果が表示されます。

+------------------+
| StudentFirstName |
+------------------+
| John             |
| Carol            |
| Johnny           |
| Robert           |
| Chris            |
| Ramit            |
+------------------+
6 rows in set (0.00 sec)

4. LIKE演算子で先頭の文字を条件に検索

ここが重要なポイントです。LIKE演算子と「%」(任意の文字列に一致するワイルドカード)を組み合わせることで、先頭の文字を条件にレコードを抽出できます。例えば、「C」で始まる名前を持つ学生をすべて取得するには、以下のようにクエリを記述します。

mysql> select *from DemoTable where StudentFirstName LIKE 'C%';

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

+------------------+
| StudentFirstName |
+------------------+
| Carol            |
| Chris            |
+------------------+
2 rows in set (0.00 sec)

このように、「Carol」と「Chris」の2件が正しく取得できました。

補足:LIKEパターンのバリエーション

  • 'C%':「C」で始まる文字列に一致
  • '%n':「n」で終わる文字列に一致
  • '%oh%':途中に「oh」を含む文字列に一致

なお、大文字・小文字の扱いは照合順序(collation)の設定によって異なるため、厳密に区別したい場合はBINARYキーワードを使用するか、適切なcollationを指定してください。

  1. 動的配列を活用したMySQLのLIKEクエリ実装方法を解説

    動的配列に対するLIKEクエリの基本構文 MySQLでカンマ区切りの複数値(いわゆる動的な配列)が格納されたカラムに対してLIKEクエリを実行したい場合、LIKE句とワイルドカード「%」を組み合わせることで部分一致検索が可能です。基本となる構文は以下の通りです。 select *from yourTableName     where yourColumnName2 like %yourValue%     order by yourColumnName1 asc     l

  2. MySQL SLESリポジトリを使ったMySQLのアップグレード手順

    MySQLは、MySQL SLESリポジトリを利用することで簡単にアップグレードできます。ここでは、そのアップグレードに必要な手順を詳しく解説します。デフォルトでは、MySQL SLESリポジトリは、インストール時にユーザーが選択したリリースシリーズ内で最新バージョンへとMySQLを更新します。別のリリースシリーズへ更新したい場合は、現在選択されているシリーズのサブリポジトリを無効化する必要があります。また、複数のシリーズをまたいだ一括アップグレードは避け、必ず一つ隣のシリーズへ段階的にアップグレードすることが推奨されています。なお、MySQL SLESリポジトリを使用している場合、インプレー