MySQLのCONCAT()関数に数値引数を渡すとどうなる?戻り値をわかりやすく解説
MySQLのCONCAT()関数は、本来文字列を連結するための関数ですが、実は数値の引数もそのまま渡すことができます。その際、引用符(クォート)で囲む必要はなく、数値を直接指定するだけで自動的に文字列へ変換され、連結された結果が返されます。
例1:数値引数のみを渡す場合
まず、数値だけをCONCAT()関数に渡してみましょう。
mysql> Select Concat(10,20); +---------------+ | Concat(10,20) | +---------------+ | 1020 | +---------------+ 1 row in set (0.00 sec)
このように、10 と 20 という2つの数値が引用符なしで渡されても、MySQLはそれらを自動的に文字列「10」と「20」に変換し、連結した結果である 1020 を返します。
例2:文字列と数値を混在させて渡す場合
さらに、文字列引数と数値引数を組み合わせて渡すことも可能です。以下の例では、都市名の文字列と郵便番号の数値を1つのクエリで連結しています。
mysql> Select CONCAT('DELHI ', 110006) AS 'City PIN CODE';
+----------------+
| City PIN CODE |
+----------------+
| DELHI 110006 |
+----------------+
1 row in set (0.00 sec)ここでは 'DELHI ' という文字列と 110006 という数値が混在していますが、エラーにはならず、「DELHI 110006」という1つの文字列として正しく出力されています。
まとめ
CONCAT()関数に数値を渡す場合は、次のポイントを押さえておきましょう。
- 数値は引用符なしでそのまま渡せる
- 数値はMySQLによって自動的に文字列へ変換される
- 文字列と数値を混ぜて渡しても問題なく連結できる
この特性を活かせば、IDや郵便番号などの数値データとテキストを手軽に組み合わせた表示を作成でき、クエリの記述もシンプルになります。
-
MySQLのTRIM()関数とは?文字列から接頭辞・接尾辞を削除する方法を解説
MySQLのTRIM()関数は、文字列から特定の接頭辞(プレフィックス)や接尾辞(サフィックス)、あるいはその両方を取り除くために使用される関数です。不要な記号や余分な文字を文字列の先頭・末尾から除去したい場合に非常に便利です。TRIM()関数の動作は、以下の構文を見るとよく理解できます。構文TRIM([{BOTH | LEADING | TRAILING} [str_to_remove] FROM] string)各引数の意味は次のとおりです。BOTH:文字列の左側(先頭)と右側(末尾)の両方から指定した文字列を削除します。LEADING:先頭(左側)に付いている文字列のみを削除します。TR
-
MySQLでCHAR()関数の逆の処理を行う方法|ASCII()とORD()の違いを解説
MySQLにおいて、CHAR()関数の逆の働きをするのは ASCII() 関数と ORD() 関数です。CHAR() は数値(文字コード)を文字に変換する関数ですが、ASCII() は引数の文字列の左端の文字に対応する数値(ASCIIコード)を返し、ORD() は左端の文字の文字コードを返します。 ASCII()とORD()の違い どちらも文字から数値への変換を行う点は共通していますが、以下のような違いがあります。 ASCII():シングルバイト文字専用。マルチバイト文字を渡すと警告が出て64を返します。 ORD():マルチバイト文字にも対応しており、最初のバイトの値に基づいて計算された文字