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演算子と正規表現を活用して、効率的なデータ検索を実現しましょう。
-
MySQL 8.0で非推奨になった機能とは?主な変更点と代替手段を解説
MySQLで非推奨(Deprecated)とされた機能の一部は、今後のバージョンで削除される可能性があります。アプリケーションが特定のバージョンで非推奨となった機能を使用している場合は、できるだけ早くコードを見直し、可能な限り代替機能への移行を進めることをおすすめします。 この記事では、MySQL 8.0で非推奨となった主な機能について、カテゴリ別にわかりやすく解説します。 MySQL 8.0で非推奨となった主な機能 文字セット・認証関連 utf8mb3文字セット:非推奨となりました。代わりにutf8mb4を使用してください。 sha256_password認証:このパスワード認証方式は
-
MySQL 8.0の新機能まとめ:追加された7つの主要機能を解説
本記事では、MySQL 8.0で新たに追加された主要機能についてわかりやすく解説します。セキュリティ、パフォーマンス、文字セットなど多方面にわたる改善点を確認していきましょう。セキュリティレベルの強化MySQL 8.0ではセキュリティレベルが大幅に改善され、DBA(データベース管理者)はアカウント管理においてより柔軟な運用が可能になりました。これにより、きめ細かな権限設定や安全なユーザー管理が実現しています。リソースグループリソースグループの作成と管理が可能になり、サーバー内で動作するスレッドを特定のグループのリソースに割り当てられるようになりました。グループの属性を使用することで、リソースの