本当にただのメモ

なるべく Qiita に投稿しよう

case sensitive にするために BLOB 型にするのは現代では BK 、カラム個別に CHARSET を指定すれば良い

例:

name VARCHAR(255) CHARACTER SET ascii COLLATE ascii_bin NOT NULL

この方法のメリット:

  • 想定外のマルチバイトが入らない
    • 逆に BLOB だとアプリケーションで気をつけないとバイナリ列を突っ込める

ちなみに CHARACTER SET = ascii だとデフォルトでは COLLATION ( 照合順序 ) は ascii_general_ci なので( ↓ 証拠。ci は case insentive の略)、case sensitive にするなら COLLATE ascii_bin を付けるのがキモ。

> SHOW CHARACTER SET WHERE Charset LIKE '%ascii%';
+---------+-------------+-------------------+--------+
| Charset | Description | Default collation | Maxlen |
+---------+-------------+-------------------+--------+
| ascii   | US ASCII    | ascii_general_ci  |      1 |
+---------+-------------+-------------------+--------+
1 row in set (0.00 sec)

See Also