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

MySQL RLIKE演算子で使える主なワイルドカード文字の意味と使い方を解説

MySQLのRLIKE演算子は、正規表現(パターン)を使って文字列を柔軟に検索できる強力な機能です。ワイルドカード(正規表現の特殊文字)を組み合わせることで、複雑な検索条件を持つクエリを簡潔に記述でき、開発作業の効率が大きく向上します。なお、RLIKEはREGEXPと同義であり、どちらを使っても同じ動作になります。ここでは、RLIKEでよく使われる代表的なワイルドカードを紹介します。

1. ^(キャレット)― 文字列の先頭を表す

^は文字列の「先頭」を意味します。このワイルドカードをRLIKE演算子と併用すると、^の後に続く特定の文字列で始まるレコードだけを抽出できます。

使用例

mysql> Select Id, Name from Student WHERE Name RLIKE '^H';
+------+---------+
| id   | Name    |
+------+---------+
| 15   | Harshit |
+------+---------+
1 row in set (0.00 sec)

上記の例では、「H」で始まる名前を持つ学生のみが検索結果として返されます。

2. $(ドル)― 文字列の末尾を表す

$は文字列の「末尾」を意味します。このワイルドカードを使用すると、$の直前に指定した文字列で終わるレコードを検索できます。

使用例

mysql> Select Id, Name from Student WHERE Name RLIKE 'v$';
+------+--------+
| Id   | Name   |
+------+--------+
| 1    | Gaurav |
| 2    | Aarav  |
| 20   | Gaurav |
+------+--------+
3 rows in set (0.00 sec)

この例では、名前が「v」で終わる学生(Gaurav、Aaravなど)が該当します。

3. |(縦棒)― OR条件を表す

|は「OR(または)」を意味します。このワイルドカードを使うと、|で区切って指定した複数の部分文字列のうち、いずれか一つでも含まれる文字列を検索できます。

使用例

mysql> Select Id, Name from Student WHERE Name RLIKE 'Gaurav|raj';
+------+---------+
| Id   | Name    |
+------+---------+
| 1    | Gaurav  |
| 20   | Gaurav  |
| 21   | Yashraj |
+------+---------+
3 rows in set (0.00 sec)

この例では、「Gaurav」または「raj」を含む名前がすべて抽出されています。

まとめ

ワイルドカード意味用途
^文字列の先頭指定した文字列で始まるデータを検索
$文字列の末尾指定した文字列で終わるデータを検索
|OR条件複数の候補のいずれかを含むデータを検索

これらのワイルドカードを組み合わせれば、より高度なパターンマッチングも可能です。たとえば「^A.*v$」のように記述すれば、「Aで始まりvで終わる名前」という条件を一度に表現できます。RLIKE演算子と正規表現を活用して、効率的なデータ検索を実現しましょう。

  1. MySQL 8.0で非推奨になった機能とは?主な変更点と代替手段を解説

    MySQLで非推奨(Deprecated)とされた機能の一部は、今後のバージョンで削除される可能性があります。アプリケーションが特定のバージョンで非推奨となった機能を使用している場合は、できるだけ早くコードを見直し、可能な限り代替機能への移行を進めることをおすすめします。 この記事では、MySQL 8.0で非推奨となった主な機能について、カテゴリ別にわかりやすく解説します。 MySQL 8.0で非推奨となった主な機能 文字セット・認証関連 utf8mb3文字セット:非推奨となりました。代わりにutf8mb4を使用してください。 sha256_password認証:このパスワード認証方式は

  2. MySQL 8.0の新機能まとめ:追加された7つの主要機能を解説

    本記事では、MySQL 8.0で新たに追加された主要機能についてわかりやすく解説します。セキュリティ、パフォーマンス、文字セットなど多方面にわたる改善点を確認していきましょう。セキュリティレベルの強化MySQL 8.0ではセキュリティレベルが大幅に改善され、DBA(データベース管理者)はアカウント管理においてより柔軟な運用が可能になりました。これにより、きめ細かな権限設定や安全なユーザー管理が実現しています。リソースグループリソースグループの作成と管理が可能になり、サーバー内で動作するスレッドを特定のグループのリソースに割り当てられるようになりました。グループの属性を使用することで、リソースの