LPAD()・RPAD()関数のパディングに空文字列を指定すると、MySQLは何を返す?
MySQLのLPAD()関数やRPAD()関数では、第3引数に指定する「パディング用の文字列」が重要な役割を果たします。ここで、パディング用の文字列として空文字列('')を指定した場合、MySQLはどのような結果を返すのでしょうか。
結論から言うと、この場合MySQLはNULLを返します。これは、空文字列を使って目的の長さまで文字列を埋めることができないためです。以下の例でその動作を確認してみましょう。
実行例
まず、LPAD()関数に空文字列を指定した場合の例です。
mysql> Select LPAD('ABCD',22,'');
+--------------------+
| LPAD('ABCD',22,'') |
+--------------------+
| NULL |
+--------------------+
1 row in set (0.00 sec)次に、RPAD()関数に空文字列を指定した場合の例です。
mysql> Select RPAD('ABCD',22,'');
+--------------------+
| RPAD('ABCD',22,'') |
+--------------------+
| NULL |
+--------------------+
1 row in set (0.00 sec)解説
LPAD()は文字列の左側を、RPAD()は文字列の右側を、指定した長さになるまでパディング文字列で埋める関数です。しかし、パディングに使う文字が存在しない(空文字列である)場合、たとえ目標の長さを指定しても文字列を延長することができません。そのため、MySQLはエラーではなくNULLを返す仕様になっています。
実際に文字列をパディングしたい場合は、スペース(' ')や任意の記号など、少なくとも1文字以上のパディング文字列を指定する必要があります。
-
MySQLで文字列内の特定の文字を検索する方法|REGEXPの使い方を解説
MySQLで文字列内の特定の文字を検索するにはMySQLで文字列の中に特定の文字が含まれているかどうかを調べたい場合は、REGEXP(正規表現)を使用します。ここでは、「J」「A」「V」「A」という4文字が文字列内にこの順番で含まれているレコードを検索する例を紹介します。1. サンプルテーブルの作成まず、検索対象となるテーブルを作成します。mysql> create table DemoTable ( Value varchar(50) ); Query OK, 0 rows affected (3.92 sec)2. レコードの挿入INSERTコマンドを使って、テーブルにサンプ
-
MySQLで文字列と数値を組み合わせて保存するには?適切なデータ型の選び方
MySQLで「John_123」のような文字列と数値が混在したデータを1つのカラムに保存したい場合、VARCHAR型を使用します。VARCHARは可変長の文字列型であり、英数字や記号を含む任意の文字列を格納できるため、ユーザーIDや商品コードなど、文字と数字が組み合わさったデータの保存に最適です。 VARCHAR型の基本構文 CREATE TABLE yourTableName ( yourColumnName1 VARCHAR(40) ); 括弧内の数値(40)は、そのカラムに保存できる最大文字数を表しています。保存するデータの長さに応じて、適切な値を指定してください。 テーブルを作成し