【MySQL】COLLATION(照合順序)の意味と確認方法

データベース

COLLATION(照合順序)の意味や確認方法を紹介します。

COLLATION(照合順序)の意味

COLLATION(照合順序)は文字列をどのように比較するかに影響します。
データベース、テーブル、カラムに設定可能です。

utf8mb4_general_ci

英字の大文字小文字が区別しません。
半角と全角は区別します。
基本的には、utf8mb4_general_ciを使われます。

utf8mb4_unicode_ci

大文字小文字、全角半角、ひらがな・カタカナ、濁音・半濁音が区別しません。

utf8mb4_bin

すべて区別します。

COLLATION(照合順序)の確認方法

-- 一覧の表示
show collation
-- utf8に絞って表示
show collation where charset like '%utf8%';

表のCollatioの列の隣に対応しているcharsetが文字コードが記載されています。

COLLATIONの設定方法

-- テーブル作成
create table テーブル名 (
  col varchar(10)
) 
character set 'utf8mb4'
collate 'utf8mb4_general_ci';

collateでcollationを指定できます。

COLLATIONで検索する

select * from テーブル名 where 属性 = '値';
select * from テーブル名 where 属性 COLLATE utf8mb4_unicode_ci = '値';
select * from テーブル名 where 属性 COLLATE utf8mb4_bin = '値';