MySQLのCHAR()関数がデフォルトでバイナリ文字列を返すことを確認する方法
CHAR()関数の戻り値の文字セットを確認するには
MySQLのCHAR()関数が、デフォルトではどのような文字セットの文字列を返すのかを確認したい場合は、CHARSET()関数を使用します。CHARSET()関数にCHAR()関数の結果を渡すことで、戻り値の文字セットを簡単に調べることができます。
以下の実行例では、その動作を実際に確かめることができます。
mysql> Select CHARSET(CHAR(85)); +-------------------+ | CHARSET(CHAR(85)) | +-------------------+ | binary | +-------------------+ 1 row in set (0.00 sec)
結果の読み方
この例では、CHAR(85)はASCIIコード85に対応する文字「U」を返します。しかし、その結果をCHARSET()関数で確認すると、「binary」という値が返されています。
これは、CHAR()関数がデフォルトではバイナリ文字列(binary文字セット)を返すことを意味しています。つまり、明示的に文字セットや照合順序を指定しない限り、CHAR()関数の戻り値はバイナリ文字列として扱われる点に注意が必要です。
-
MySQLテーブルのデフォルト文字セットを変更する方法【実行例付き】
MySQLでテーブルのデフォルト文字セットを変更するには、ALTER TABLE文とCONVERT TO句を組み合わせます。基本的な構文は以下の通りです。ALTER TABLE テーブル名 CONVERT TO CHARACTER SET 文字セット名;サンプルテーブルの作成まずは動作確認用に、シンプルなテーブルを作成します。以下のクエリを実行してください。mysql> create table CharsetDemo -> ( -> Id int, -> Name varchar(200), -> Age int ->
-
MySQLで文字列内の特定の文字を置き換える方法|CONCATとSUBSTRINGの使い方
MySQLで文字列の中の特定の位置にある文字だけを変更したい場合、CONCAT()関数とSUBSTRING()関数を組み合わせることで実現できます。UPDATE文やREPLACE()関数を使わなくても、SELECT文だけで指定した位置の文字を別の文字に置き換えて表示できるのが特徴です。基本的な考え方この手法では、文字列を「変更したい文字の前まで」「置き換える文字」「変更したい文字の後から」の3つに分割し、CONCAT()で連結し直します。SUBSTRING(列名, 開始位置, 文字数):指定した開始位置から指定した文字数分だけ部分文字列を取り出すSUBSTRING(列名, 開始位置):指定した