mysql CONCAT 超长
时间: 2023-10-12 07:18:02 浏览: 145
当使用 MySQL 中的 CONCAT 函数拼接字符串时,如果拼接后的字符串超过了最大长度限制,可能会出现截断的情况。默认情况下,MySQL 中 VARCHAR 类型的最大长度是 65535 个字符,如果使用 UTF-8 编码,则最大长度为 21845 个字符。
为了解决这个问题,可以在 CONCAT 函数中使用 SUBSTRING 函数,将较长的字符串截取为多个较短的字符串进行拼接。例如,下面的代码可以将两个较长的字符串拼接成一个字符串:
```
SELECT CONCAT(SUBSTRING(str1, 1, 5000), SUBSTRING(str1, 5001), SUBSTRING(str2, 1, 5000), SUBSTRING(str2, 5001)) FROM table;
```
在上面的代码中,SUBSTRING 函数将字符串分成了多个部分,每个部分的长度都不超过 5000 个字符。然后使用 CONCAT 函数将这些部分拼接成最终的字符串。
需要注意的是,为了避免出现乱码或者字符集转换问题,需要在连接字符串前进行字符集转换,例如:
```
SELECT CONCAT(CONVERT(SUBSTRING(str1, 1, 5000) USING utf8), CONVERT(SUBSTRING(str1, 5001) USING utf8), CONVERT(SUBSTRING(str2, 1, 5000) USING utf8), CONVERT(SUBSTRING(str2, 5001) USING utf8)) FROM table;
```
在上面的代码中,使用 CONVERT 函数将每个部分转换为 UTF-8 字符集,然后再进行拼接。
阅读全文