最近在做项目的时候,发现了一个奇怪的现象。
做项目的时候,使用的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的版本问题啊!!!!!!!!
分享到:
相关推荐
在MySQL中,`VARCHAR`是一种用于存储可变长度字符串的数据类型,它的长度设置是非常关键的,因为它直接影响到存储空间的使用效率和数据的正确性。`VARCHAR`的长度设置方法是通过在类型名后面括号内指定最大字符数,...
在MySQL数据库中,数据类型的选用对于性能有着显著的影响,特别是当我们处理大量数据时。本文主要讨论了int、char和varchar这三种常见数据类型在性能上的差异。通常,这些差异在无索引和有索引的情况下的表现会有所...
总之,在MySQL和Oracle中,将VARCHAR类型的日期转换为DATE类型都需要使用特定的函数,并指定正确的日期格式模式。转换后,可以根据需要进行排序或其他操作。理解并正确使用这些函数对于数据库中的数据处理至关重要。
3、在数据量少的时候可以使用sum()函数直接求和,因为MySQL中它可以自动识别是字符串类型还是数字类型。 4、以上适用于整数,或者是数据量小,要是数据量太大,并且精度较高不适用,那么就可以考虑使用MySQL 的CAST...
而对于InnoDB存储引擎,由于其支持事务和行级锁定,通常更关注存储空间的利用率,所以推荐使用VARCHAR类型。 在处理多语言站点时,如果数据长度固定,例如身份证号,建议使用Unicode的nchar或nvarchar类型,以避免...
在MySQL数据库中,`CHAR`和`VARCHAR`是两种常见的字符串数据类型,它们在存储和处理数据时具有不同的效率特点。理解这两种类型的差异对于优化数据库性能至关重要。 `CHAR`是一种固定长度的数据类型,这意味着无论...
在 MySql 中,字符串类型对应的是 VARCHAR、NVARCHAR、CHAR、NCHAR 等类型。其中,VARCHAR 类型用于存储可变长度的字符串,NVARCHAR 类型用于存储 Unicode 字符串,CHAR 类型用于存储固定长度的字符串,NCHAR 类型...
本文将深入探讨在不同数据库系统间进行表结构转换,特别是针对varchar类型的字段长度处理,这在Oracle到Greenplum(GP)、Oracle到MySQL的数据迁移过程中尤为重要。 首先,让我们关注标题提到的“GP数据库表结构转...
Java 和 MySQL 数据类型之间的对比是理解数据库操作和应用程序开发中数据处理的关键。这两种语言的数据类型在功能和使用上都有所不同,尽管它们都用于存储和处理数据,但各自有着特定的适用场景和特点。 首先,Java...
在 MySQL 中,默认的行格式是 Compact 格式,这种格式适合小的存储类型,如 char、varchar 等。但是,对于大的存储类型,如 text、longtext、blob 等,Compact 格式就不太适合了。这是因为 Compact 格式的设计是为了...
在 Java 编程中,了解 Java 数据类型和 MySql 数据类型的对应关系非常重要。这是因为在 Java 应用程序中,我们经常需要与数据库进行交互,而 MySql 是一种常用的关系数据库管理系统。在本文中,我们将详细介绍 Java ...
在上篇文章给大家讲了MySQL数据库中把int转化varchar引发的慢查询,本文给大家介绍Mysql数据库中把varchar类型转化为int类型的方法,一起看看吧! mysql为我们提供了两个类型转换函数:CAST和CONVERT,现成的东西...
在MySQL 5.0.3之前的版本中,VARCHAR类型的最长长度限制为255个字符,而在5.0.3及以后的版本中,这个限制扩展到了65535个字节,实际可存储的字符数量会因字符集而异。这一变化使得在处理大量文本数据时,可以更有效...
MySQL中的VARCHAR类型是一种可变长度的字符串数据类型,它在存储空间上相比固定长度的CHAR类型更为节省。本文将深入探讨VARCHAR类型的大小长度问题及其在不同版本和编码下的限制。 首先,VARCHAR字段的长度限制主要...
本文将详细介绍MySQL中的各种数据类型及其在Java中的对应类型,并解释这些类型的具体含义以及它们在实际应用中的作用。 #### 数据类型对照表解析 ##### 1. VARCHAR (可变长度字符串) **显示长度:** L+N **数据库...