勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ

MySQLでLIKE検索時に大文字・小文字・半角・全角全て区別したい

   2021/07/08  MySQL / MariaDB データベース

以前にMySQLであいまい検索時に大文字小文字は区別しないが、それ以外は全て区別する方法をメモした。今回はそれに加えて大文字小文字も区別させたい。以下に方法をメモ。

 

BINARY演算子を使用する

以下のような記述で対応できる。

WHERE test_column LIKE BINARY '%hogehoge%';

 

BINARY演算子とは?

リファレンスによると以下のようになるとのこと。

BINARY 演算子は、それに続く文字列をバイナリ文字列にキャストします。これは、比較を文字ごとでなくバイトごとに強制的に実行させる簡単な方法です。また、BINARY では末尾の空白文字が重要になります。

文字ごとではなく1byteごとに比較し、検索するということなのか。イマイチよく分からない。

 

所感

あいまい検索かつ大文字・小文字・半角・全角全て区別して検索したいというのは初めてのケースだったので苦労した。

 - MySQL / MariaDB データベース

  関連記事

MySQLで指定カラムの文頭もしくは文末に文字を追記する方法
MySQLで指定カラムの文頭もしくは文末に文字を追記する方法

MySQLで特定カラムの文頭もしくは文末に年月日日時(YmdHis)を追記したい ...

MySQLでROW_NUMBER関数を使用してグループ毎に連番を設定する方法
MySQLでROW_NUMBER関数を使用してグループ毎に連番を設定する方法

以前にMySQLでオートインクリメントを使用せずにグループ毎に連番を設定する方法 ...

MySQLで日時や日付で範囲検索する際に動作速度を向上させる方法
MySQLで日時や日付で範囲検索する際に動作速度を向上させる方法

MySQLでログ系等の大量にデータが格納されているテーブルから日時や日付で範囲検 ...

MySQLで歯抜けになっているint型の数値を取得する
MySQLで歯抜けになっているint型の数値を取得する

MySQLで歯抜けになっているシーケンス番号を 取得したいケースがあった。 ■ソ ...

MySQLで大文字小文字
MySQLで大文字小文字

半角英数字のみのフォームで入力した値を検索した際、 データに差異が発生。 [Aa ...