MySQL存储全角字符和半角字符的区别

 更新时间:2017年05月21日 11:25:51   作者:linux_c_coding_man  
这篇文章主要介绍了MySQL存储全角字符和半角字符的区别的相关资料,需要的朋友可以参考下

很不巧公司内测IM的时候又遇到MYSQL_DATA_TRUNCATED错误,日志记录还是在mysql_stmt_fetch调用的时候出现的。鉴于之前的经验,应该是给定的结果集绑定区域长度不够造成的,反复检查了好多遍没发现问题。我在代码中都是对应的关系,比如char(20),我代码中就会定义char buffer[20]数组来存储。看起来如此的正确完美。后面没办法只好打印每一行的数据,找到报错的那一行记录,发现字体和别的不一样。比如:

123456789(半角)
123456789(全角)

这并不是我输入空格控制的,而是输入法全角半角控制的。对于全角字符,它是半角字符长度的两倍,而我的MySQL使用了utf-8,所以在数据库中那就是一个全角字符长度是3个字节。

select length(column) from table_name where…;

用这个来打印长度就可以判断出来。这个时候你就要考虑一个代码中类型的长度和数据库字段长度匹配的问题了,比如全角字符或者中文字符。数据库中的char(20)代表的是20个字符,而不是20个字节,这里要注意,所以取数据的时候千万不要全部使用这个20来做结果集长度来取数据。

相关文章

  • 详解MySQL 重做日志(redo log)与回滚日志(undo logo)

    详解MySQL 重做日志(redo log)与回滚日志(undo logo)

    这篇文章主要介绍了MySQL redo与undo日志的相关资料,帮助大家更好的理解和学习MySQL,感兴趣的朋友可以了解下
    2020-08-08
  • MySQL中的distinct与group by比较使用方法

    MySQL中的distinct与group by比较使用方法

    今天无意中听到有同事在讨论,distinct和group by有什么区别,下面这篇文章主要给大家介绍了关于MySQL去重中distinct和group by区别的相关资料,需要的朋友可以参考下
    2023-03-03
  • MySQL8.0中的降序索引

    MySQL8.0中的降序索引

    这篇文章主要介绍了MySQL8.0中的降序索引的相关知识,帮助大家更好的理解和使用MySQL8.0的新特性,感兴趣的朋友可以了解下
    2020-10-10
  • mysql如何利用Navicat导出和导入数据库的方法

    mysql如何利用Navicat导出和导入数据库的方法

    这篇文章主要介绍了mysql如何利用Navicat导出和导入数据库的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-02-02
  • Mysql表连接的执行流程详解

    Mysql表连接的执行流程详解

    这篇文章主要介绍了Mysql表连接的执行流程详解,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下,希望对你的学习有所帮助
    2022-08-08
  • 解决MySQL登录报错1045-Access denied for user 'root'@' '(using password:YES)

    解决MySQL登录报错1045-Access denied for user 'root'@

    这篇文章主要给大家介绍了关于解决MySQL登录报错1045-Access denied for user ‘root‘@‘‘(using password:YES)的相关资料,文中一步步将解决的办法介绍的非常详细,需要的朋友可以参考下
    2023-07-07
  • mysql8中如何设置sql-mode

    mysql8中如何设置sql-mode

    这篇文章主要介绍了mysql8中如何设置sql-mode问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • MySQL学习之数据更新操作详解

    MySQL学习之数据更新操作详解

    这篇文章我们将学习一下用于数据更改的 “UPDATE” 语句, “UPDATE” 语句也是属于 DML 这一类数据库操作语言,感兴趣的可以了解一下
    2022-08-08
  • MYSQL修改所有表的存储引擎格式语句

    MYSQL修改所有表的存储引擎格式语句

    MYSQL如何修改所有表的存储引擎格式,或许下面的sql语句对大家有所帮助
    2013-08-08
  • mysql 字符串转数组的实现示例

    mysql 字符串转数组的实现示例

    有时候,我们需要将一个字符串拆分成一个数组,本文主要介绍了mysql 字符串转数组的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-01-01

最新评论