当前位置:首页 > 问答 > 正文

数据库|拼接 MySQL字符串连接函数repeat用法详解

MySQL字符串连接函数REPEAT用法详解

2025年8月最新动态
MySQL 8.4版本近期优化了字符串处理函数的性能,其中REPEAT()函数在长字符串拼接场景下的效率提升了约15%,对于需要生成重复字符或动态填充内容的开发者来说,这无疑是个好消息。

REPEAT函数是啥?

REPEAT()就是MySQL里的“复读机”——它能将一个字符串重复N次,比如你想生成10个连在一起的井号,或者批量构造测试数据时,这个函数能省不少工夫。

基本语法长这样:

REPEAT(字符串, 重复次数)

实际用起来啥效果?

基础用法

SELECT REPEAT('Ha', 3);  -- 输出:HaHaHa
SELECT REPEAT('*', 5);   -- 输出:*****

生成分隔线

做报表时经常需要华丽的分隔线:

SELECT CONCAT('标题', REPEAT('-', 20));  
-- 输出:标题--------------------

数据补位

比如给编号左侧补零到5位:

数据库|拼接 MySQL字符串连接函数repeat用法详解

SELECT CONCAT(REPEAT('0', 5-LENGTH('123')), '123');  
-- 输出:00123

创建测试数据

快速生成100个字符的乱码测试:

SELECT REPEAT('XyZ!', 25);  -- 重复25次,共100字符

避坑指南

  1. 重复次数为0或负数

    • REPEAT('A', 0) 返回空字符串
    • REPEAT('A', -1) 返回NULL(MySQL静默处理,不报错)
  2. 超长字符串警告
    MySQL默认限制max_allowed_packet大小(通常4MB),重复后的总长度超过限制会导致错误。

  3. 性能注意
    虽然8.4版本有优化,但重复百万次仍可能拖慢查询,建议在应用层处理极端情况。

组合技玩法

配合其他函数更强大:

数据库|拼接 MySQL字符串连接函数repeat用法详解

  • 动态生成密码掩码

    SELECT CONCAT(LEFT('password', 2), REPEAT('*', 6));  
    -- 输出:pa******
  • 制作简易条形图

    SELECT 
      product_name, 
      REPEAT('█', sales_volume/100) AS sales_graph  
    FROM products;

REPEAT()虽是小函数,但在这些场景特别香:
✅ 快速生成重复模式字符串
✅ 数据格式化补位
✅ 开发测试时造数据

下次遇到需要“复制粘贴”字符串的情况,不妨试试这个低调但实用的工具。

发表评论