diff --git a/functions-and-operators/string-functions.md b/functions-and-operators/string-functions.md index 2760bdead815..d093006d916d 100644 --- a/functions-and-operators/string-functions.md +++ b/functions-and-operators/string-functions.md @@ -1266,7 +1266,63 @@ SELECT LPAD('TiDB',-2,'>'); ### [`REPEAT()`](https://dev.mysql.com/doc/refman/8.0/en/string-functions.html#function_repeat) -以指定次数重复一个字符串 +`REPEAT()` 函数用于以指定次数重复一个字符串。 + +示例: + +以下示例使用[递归的公共表表达式 (CTE)](/develop/dev-guide-use-common-table-expression.md#递归的-cte) 生成从 1 到 20 的数字序列,并使用 `REPEAT()` 函数重复对应次数的 `x` 字符串: + +```sql +WITH RECURSIVE nr(n) AS ( + SELECT 1 AS n + UNION ALL + SELECT n+1 FROM nr WHERE n<20 +) +SELECT n, REPEAT('x',n) FROM nr; +``` + +``` ++------+----------------------+ +| n | REPEAT('x',n) | ++------+----------------------+ +| 1 | x | +| 2 | xx | +| 3 | xxx | +| 4 | xxxx | +| 5 | xxxxx | +| 6 | xxxxxx | +| 7 | xxxxxxx | +| 8 | xxxxxxxx | +| 9 | xxxxxxxxx | +| 10 | xxxxxxxxxx | +| 11 | xxxxxxxxxxx | +| 12 | xxxxxxxxxxxx | +| 13 | xxxxxxxxxxxxx | +| 14 | xxxxxxxxxxxxxx | +| 15 | xxxxxxxxxxxxxxx | +| 16 | xxxxxxxxxxxxxxxx | +| 17 | xxxxxxxxxxxxxxxxx | +| 18 | xxxxxxxxxxxxxxxxxx | +| 19 | xxxxxxxxxxxxxxxxxxx | +| 20 | xxxxxxxxxxxxxxxxxxxx | ++------+----------------------+ +20 rows in set (0.01 sec) +``` + +以下示例演示了 `REPEAT()` 可以处理包含多个字符的字符串: + +```sql +SELECT REPEAT('ha',3); +``` + +``` ++----------------+ +| REPEAT('ha',3) | ++----------------+ +| hahaha | ++----------------+ +1 row in set (0.00 sec) +``` ### [`REPLACE()`](https://dev.mysql.com/doc/refman/8.0/en/string-functions.html#function_replace)