に最終更新
REPEAT
説明
REPEAT 関数は、指定した文字列を指定した回数繰り返して新しい文字列を生成します。この関数は、埋め込み用の文字の生成、区切り文字の作成、テストデータの生成などによく使用します。
構文
REPEAT(<str>, <count>)
引数
| 引数 | 説明 |
|---|---|
<str> | 繰り返す元の文字列。型: VARCHAR |
<count> | 繰り返す回数。非負の整数を指定します。型: INT |
戻り値
VARCHAR 型の値を返します。指定した回数だけ繰り返した文字列を表します。
繰り返しの規則:
- count が 0 より大きい場合、str を count 回繰り返した結果を返します
- count が 0 の場合、空文字列を返します
- count が 0 より小さい場合、空文字列を返します
- 結果の文字列が長すぎる場合、文字列長の制限を受けることがあります
特殊なケース:
- いずれかの引数が NULL の場合、NULL を返します
- str が空文字列の場合、count に関係なく空文字列を返します
- count が 0 の場合、空文字列を返します
- count が負の場合、空文字列を返します
使用例
- 文字を繰り返す基本的な例
SELECT REPEAT('a', 3);
+----------------+
| REPEAT('a', 3) |
+----------------+
| aaa |
+----------------+
- 複数文字の文字列を繰り返す例
SELECT REPEAT('hello', 2);
+--------------------+
| REPEAT('hello', 2) |
+--------------------+
| hellohello |
+--------------------+
- 繰り返し回数がゼロの場合
SELECT REPEAT('test', 0);
+-------------------+
| REPEAT('test', 0) |
+-------------------+
| |
+-------------------+
- 繰り返し回数が負の場合
SELECT REPEAT('a', -1);
+-----------------+
| REPEAT('a', -1) |
+-----------------+
| |
+-----------------+
- NULL 値の扱い
SELECT REPEAT(NULL, 3), REPEAT('a', NULL);
+------------------+-------------------+
| REPEAT(NULL, 3) | REPEAT('a', NULL) |
+------------------+-------------------+
| NULL | NULL |
+------------------+-------------------+
- 空文字列を繰り返す例
SELECT REPEAT('', 5);
+----------------+
| REPEAT('', 5) |
+----------------+
| |
+----------------+
- 特殊文字を繰り返す例
SELECT REPEAT('-', 10), REPEAT('*', 5);
+------------------+-----------------+
| REPEAT('-', 10) | REPEAT('*', 5) |
+------------------+-----------------+
| ---------- | ***** |
+------------------+-----------------+
- UTF-8 文字を繰り返す例
SELECT REPEAT('ṭṛì', 3), REPEAT('ḍḍu', 2);
+-------------------+-------------------+
| REPEAT('ṭṛì', 3) | REPEAT('ḍḍu', 2) |
+-------------------+-------------------+
| ṭṛìṭṛìṭṛì | ḍḍuḍḍu |
+-------------------+-------------------+
- 数字と記号が混在する文字列を繰り返す例
SELECT REPEAT('123', 3), REPEAT('@#', 4);
+-------------------+------------------+
| REPEAT('123', 3) | REPEAT('@#', 4) |
+-------------------+------------------+
| 123123123 | @#@#@#@# |
+-------------------+------------------+
- UTF-8 文字を繰り返す例
SELECT REPEAT('ṭṛìṭṛì', 3);
+--------------------------------------------------+
| REPEAT('ṭṛìṭṛì', 3) |
+--------------------------------------------------+
| ṭṛìṭṛìṭṛìṭṛìṭṛìṭṛì |
+--------------------------------------------------+