`
luoting2762
  • 浏览: 6833 次
  • 性别: Icon_minigender_2
  • 来自: 吉林省长春市
文章分类
社区版块
存档分类
最新评论

mysql中的varchar类型

阅读更多
最近在做项目的时候,发现了一个奇怪的现象。

做项目的时候,使用的Mysql版本是5.0,varchar类型给定长度10。

一点问题也没发现。

但是到了客户那边,使用的Mysql版本是5.1,马上就出错了。

调试的过程中,也考虑过是数据库版本的问题。

但是一直都没有证实。

看了下mysql参考手册,证实了我的猜测。

mysql5.0:在VARCHAR列中的值是变长字符串。VARCHAR值只存储所需的字符,外加一个字节记录长度,值不被填补;相反,当值被存储时,拖后的空格被删去。(这个空格删除不同于ANSI SQL规范。)

/********************************************************************/

mysql5.1:VARCHAR列中的值为可变长字符串。VARCHAR值保存时只保存需要的字符数,另加一个字节

来记录长度(如果列声明的长度超过255,则使用两个字节)。VARCHAR值保存时不进行填充。当值保存和检索时尾部的空格仍保留,符合标准SQL。


mysql5.0会自动去掉尾部的空格,而5.1不会,会存储到数据库中。

而我们的问题也正出在这。用5.0时,从页面获得字段时,尾部多了个空格。超出了10位,但是自动被去掉

了。客户那边的空格却被保存了。所以就出错了。


大家一定要注意Mysql的版本问题啊!!!!!!!!
分享到:
评论
2 楼 luoting2762 2011-09-07  
谢谢!
1 楼 sealrose 2011-08-10  
很赞的问题

相关推荐

    Mysql中varchar长度设置方法

    在MySQL中,`VARCHAR`是一种用于存储可变长度字符串的数据类型,它的长度设置是非常关键的,因为它直接影响到存储空间的使用效率和数据的正确性。`VARCHAR`的长度设置方法是通过在类型名后面括号内指定最大字符数,...

    对比MySQL中int、char以及varchar的性能

    在MySQL数据库中,数据类型的选用对于性能有着显著的影响,特别是当我们处理大量数据时。本文主要讨论了int、char和varchar这三种常见数据类型在性能上的差异。通常,这些差异在无索引和有索引的情况下的表现会有所...

    MySQL中把varchar类型转为date类型方法详解

    总之,在MySQL和Oracle中,将VARCHAR类型的日期转换为DATE类型都需要使用特定的函数,并指定正确的日期格式模式。转换后,可以根据需要进行排序或其他操作。理解并正确使用这些函数对于数据库中的数据处理至关重要。

    mysql varchar类型求和实例操作

    3、在数据量少的时候可以使用sum()函数直接求和,因为MySQL中它可以自动识别是字符串类型还是数字类型。 4、以上适用于整数,或者是数据量小,要是数据量太大,并且精度较高不适用,那么就可以考虑使用MySQL 的CAST...

    MySQL中VARCHAR与CHAR格式数据的区别

    而对于InnoDB存储引擎,由于其支持事务和行级锁定,通常更关注存储空间的利用率,所以推荐使用VARCHAR类型。 在处理多语言站点时,如果数据长度固定,例如身份证号,建议使用Unicode的nchar或nvarchar类型,以避免...

    char和varchar在mysql中的效率怎样.docx

    在MySQL数据库中,`CHAR`和`VARCHAR`是两种常见的字符串数据类型,它们在存储和处理数据时具有不同的效率特点。理解这两种类型的差异对于优化数据库性能至关重要。 `CHAR`是一种固定长度的数据类型,这意味着无论...

    Java数据类型和MySql数据类型对应一览

    在 MySql 中,字符串类型对应的是 VARCHAR、NVARCHAR、CHAR、NCHAR 等类型。其中,VARCHAR 类型用于存储可变长度的字符串,NVARCHAR 类型用于存储 Unicode 字符串,CHAR 类型用于存储固定长度的字符串,NCHAR 类型...

    GP数据库表结构转mysql库、oracle库 varchar类型字段长度批量处理excel_MYSQL_oracle_数据库

    本文将深入探讨在不同数据库系统间进行表结构转换,特别是针对varchar类型的字段长度处理,这在Oracle到Greenplum(GP)、Oracle到MySQL的数据迁移过程中尤为重要。 首先,让我们关注标题提到的“GP数据库表结构转...

    Java中数据类型和MYSQL中数据类型的对比

    Java 和 MySQL 数据类型之间的对比是理解数据库操作和应用程序开发中数据处理的关键。这两种语言的数据类型在功能和使用上都有所不同,尽管它们都用于存储和处理数据,但各自有着特定的适用场景和特点。 首先,Java...

    mysql中插入多text类型问题

    在 MySQL 中,默认的行格式是 Compact 格式,这种格式适合小的存储类型,如 char、varchar 等。但是,对于大的存储类型,如 text、longtext、blob 等,Compact 格式就不太适合了。这是因为 Compact 格式的设计是为了...

    MySQL动态修改varchar长度的方法

    在MySQL中,`VARCHAR`类型用于存储可变长度的字符串,它相较于`CHAR`类型更加节省空间,因为它只存储实际输入的数据长度。然而,在数据库设计过程中,有时可能会遇到需要动态修改`VARCHAR`字段长度的情况,这通常是...

    Java数据类型和MySql数据类型对应表

    在 Java 编程中,了解 Java 数据类型和 MySql 数据类型的对应关系非常重要。这是因为在 Java 应用程序中,我们经常需要与数据库进行交互,而 MySql 是一种常用的关系数据库管理系统。在本文中,我们将详细介绍 Java ...

    Mysql数据库中把varchar类型转化为int类型的方法

    在上篇文章给大家讲了MySQL数据库中把int转化varchar引发的慢查询,本文给大家介绍Mysql数据库中把varchar类型转化为int类型的方法,一起看看吧! mysql为我们提供了两个类型转换函数:CAST和CONVERT,现成的东西...

    MySQL中CHAR和VARCHAR类型演变和详解

    在MySQL 5.0.3之前的版本中,VARCHAR类型的最长长度限制为255个字符,而在5.0.3及以后的版本中,这个限制扩展到了65535个字节,实际可存储的字符数量会因字符集而异。这一变化使得在处理大量文本数据时,可以更有效...

    Mysql varchar大小长度问题介绍

    MySQL中的VARCHAR类型是一种可变长度的字符串数据类型,它在存储空间上相比固定长度的CHAR类型更为节省。本文将深入探讨VARCHAR类型的大小长度问题及其在不同版本和编码下的限制。 首先,VARCHAR字段的长度限制主要...

    MySql于Java数据类型对应列表

    本文将详细介绍MySQL中的各种数据类型及其在Java中的对应类型,并解释这些类型的具体含义以及它们在实际应用中的作用。 #### 数据类型对照表解析 ##### 1. VARCHAR (可变长度字符串) **显示长度:** L+N **数据库...

Global site tag (gtag.js) - Google Analytics