You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

数据库中对超过100字符的字符串截断并追加...的最优实现方案

数据库侧实现截断追加省略号的最优方案

根据你使用的数据库类型,可直接使用内置的条件判断函数搭配现有截取逻辑实现,完全不需要额外网络开销,以下是主流数据库的实现方式:

通用实现逻辑

核心逻辑是用字符长度判断函数判断原字符串长度是否超过100,超过则拼接...,否则返回原字符串:

  • 长度判断优先使用CHAR_LENGTH(s)(注意不要用LENGTH,后者统计的是字节数,遇到多字节字符比如中文会计算错误)

各数据库具体实现

MySQL / MariaDB

使用IF函数即可,写法最简单:

SELECT IF(CHAR_LENGTH(s) > 100, CONCAT(SUBSTRING(s, 1, 100), '...'), s) AS truncated_str FROM your_table;

PostgreSQL

可以用CASE WHEN或者内置的LEFT函数简化截取:

SELECT CASE WHEN CHAR_LENGTH(s) > 100 THEN LEFT(s, 100) || '...' ELSE s END AS truncated_str FROM your_table;

SQL Server

同样用CASE WHEN搭配LEN函数(SQL Server的LEN默认统计字符数而非字节数):

SELECT CASE WHEN LEN(s) > 100 THEN SUBSTRING(s, 1, 100) + '...' ELSE s END AS truncated_str FROM your_table;

Oracle

使用CASE WHEN搭配LENGTH函数:

SELECT CASE WHEN LENGTH(s) > 100 THEN SUBSTR(s, 1, 100) || '...' ELSE s END AS truncated_str FROM your_table;

优化提示

如果需要频繁用到这个逻辑,可以直接在数据库里创建一个自定义函数封装上述逻辑,调用时直接传字符串和截断长度即可,复用性更高。

内容的提问来源于stack exchange,提问作者glarkou

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.11 03:21:01