MySQLでは、CHAR()
関数は、渡された整数ごとに文字を返します。つまり、1つ以上の整数を渡すことができ、関数はそれらを文字列文字のコード値として解釈し、各コード値に対応する文字列を返します。
構文
構文は次のようになります:
CHAR(N,... [USING charset_name])
ここで、N,...
は1つ以上の整数であり、USING charset_name
使用する文字セットを指定するために使用できるオプションの引数です。
例1-基本的な使用法
基本的な使用法を示す例を次に示します。
SELECT CHAR(67, 97, 116);
結果:
+-------------------+ | CHAR(67, 97, 116) | +-------------------+ | Cat | +-------------------+
したがって、整数の1つを変更すると、別の文字列が得られます。
SELECT CHAR(66, 97, 116);
結果:
+-------------------+ | CHAR(66, 97, 116) | +-------------------+ | Bat | +-------------------+
例2–USING句
USING
を追加する例を次に示します。 UTF-8エンコーディングを指定する句:
SELECT CHAR(0xc2a9 USING utf8);
結果:
+-------------------------+ | CHAR(0xc2a9 USING utf8) | +-------------------------+ | © | +-------------------------+
そして、Unicodeコードポイントを指定する別の例を次に示します。
SELECT CHAR(0x027FE USING ucs2);
結果:
+--------------------------+ | CHAR(0x027FE USING ucs2) | +--------------------------+ | ⟾ | +--------------------------+
例3–複数の結果バイト
255より大きい引数は、複数の結果バイトに変換されます。実例を示します。
SELECT HEX(CHAR(1,0)), HEX(CHAR(256)), HEX(CHAR(1,1)), HEX(CHAR(257));
結果:
+----------------+----------------+----------------+----------------+ | HEX(CHAR(1,0)) | HEX(CHAR(256)) | HEX(CHAR(1,1)) | HEX(CHAR(257)) | +----------------+----------------+----------------+----------------+ | 0100 | 0100 | 0101 | 0101 | +----------------+----------------+----------------+----------------+
そして、数を増やすと:
SELECT HEX(CHAR(7,0)), HEX(CHAR(1792)), HEX(CHAR(7,7)), HEX(CHAR(1799));
結果:
+----------------+-----------------+----------------+-----------------+ | HEX(CHAR(7,0)) | HEX(CHAR(1792)) | HEX(CHAR(7,7)) | HEX(CHAR(1799)) | +----------------+-----------------+----------------+-----------------+ | 0700 | 0700 | 0707 | 0707 | +----------------+-----------------+----------------+-----------------+