钟二网络头像

钟二网络

探索SQL查询技巧、Linux系统运维以及Web开发前沿技术,提供一站式的学习体验

  • 文章92531
  • 阅读982202
首页 SQL 正文内容

sql带汉字的字符串怎么截取

钟逸 SQL 2025-07-20 06:40:50 2

在实际应用中,我们经常需要从数据库中提取部分中文文本信息,比如商品名称、文章标题等。这些文本信息通常比较长,需要截取一部分展示在用户界面上。那么,如何才能正确截取sql带汉字的字符串呢?

直接截取长度容易出现乱码,因为sql中汉字占三个字节,英文字母占一个字节,直接截取长度可能会截取半个汉字,导致乱码。

截取汉字sql常用

为了正确截取,我们推荐使用以下 之一:

substr函数:substr(str, start, length),其中str为要截取的字符串,start为开始位置,length为截取的长度。需要注意的是,length参数是指字符长度,而非字节长度。例如: sql

select substr('你好世界', 1, 3);

substring函数:substring(str, start, end),其中str为要截取的字符串,start为开始位置,end为结束位置。例如: sql

select substring('你好世界', 1, 3);

left函数:left(str, length),其中str为要截取的字符串,length为截取的长度。例如: sql

select left('你好世界', 3);

right函数:right(str, length),其中str为要截取的字符串,length为截取的长度。例如: sql

select right('你好世界', 3);

注意编码格式

需要注意的是,以上截取函数均受数据库编码格式的影响。如果数据库编码格式为UTF-8,则汉字占三个字节;如果编码格式为GBK,则汉字占两个字节。因此,在使用截取函数时,需要根据数据库的编码格式进行适当的调整。

文章目录
    搜索