MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLのCHAR()関数とは?使い方と構文をわかりやすく解説

MySQLでは、指定した整数値をもとに、ASCIIコード表に対応する文字を取得することができます。この処理を実現するのがCHAR()関数です。本記事では、CHAR()関数の基本的な使い方や構文、具体的な使用例について詳しく解説します。

CHAR()関数とは

CHAR()関数は、引数として渡された整数値をASCIIコード表に従って文字列へ変換し、その結果を返す関数です。複数の整数値を渡した場合は、それぞれの整数に対応する文字が連結された文字列が返されます。

基本構文

CHAR(N,…[USING charset_name])

N には、文字に変換したい整数値を指定します。複数の整数値をカンマ区切りで渡すことも可能で、その場合は各整数値に対応する文字が順番に連結されて返されます。

使用例

例えば、整数値 65・66・67・68 を渡すと、ASCIIコード表に対応する「A」「B」「C」「D」が連結され、「ABCD」という文字列が返されます。

mysql> Select CHAR(65,66,67,68);
+-------------------+
| CHAR(65,66,67,68) |
+-------------------+
| ABCD              |
+-------------------+
1 row in set (0.00 sec)

文字セットを指定する(USING句)

オプションの USING charset_name を指定すると、渡した整数値はその文字セットにおけるコードポイントとして解釈され、指定した文字セットのバイナリ文字列として返されます。日本語などのマルチバイト文字を扱う場合にも活用できます。

NULL値の扱い

引数の中にNULLが含まれていた場合、CHAR()関数はNULLを無視して残りの整数値のみを変換します。エラーにはならないため、動的に生成したデータを渡す際も安心して利用できます。

まとめ

CHAR()関数を使えば、整数値から簡単に対応する文字を取得できます。単純なASCIIコードの変換だけでなく、USING句による文字セット指定にも対応しているため、用途に応じて柔軟に活用してみてください。

  1. MySQLでCHAR()関数の逆の処理を行う方法|ASCII()とORD()の違いを解説

    MySQLにおいて、CHAR()関数の逆の働きをするのは ASCII() 関数と ORD() 関数です。CHAR() は数値(文字コード)を文字に変換する関数ですが、ASCII() は引数の文字列の左端の文字に対応する数値(ASCIIコード)を返し、ORD() は左端の文字の文字コードを返します。 ASCII()とORD()の違い どちらも文字から数値への変換を行う点は共通していますが、以下のような違いがあります。 ASCII():シングルバイト文字専用。マルチバイト文字を渡すと警告が出て64を返します。 ORD():マルチバイト文字にも対応しており、最初のバイトの値に基づいて計算された文字

  2. C言語のprintf()における%n書式指定子とは?出力文字数を格納する特殊な機能を解説

    C言語のprintf()における%n書式指定子とは? C言語には、%nという特殊な書式指定子が用意されています。一般的な書式指定子(%dや%sなど)が画面へ値を出力するのに対し、%nは何も出力しません。その代わり、対応する引数として渡されたポインタが指し示す変数に、「%nが出現するまでにprintf()が出力した文字数」を格納します。 ポイント: %n自体は画面に何も表示しません。文字列の出力には、別途printf()関数を呼び出して行います。 基本的な使用例 #include<stdio.h> int main() { int s; printf(The val