MySQL怎么保留char前面的0

更新时间:02-05 教程 由 凉人心 分享

MySQL中的char类型通常用于存储定长的字符串。对于一些特殊的字符串,例如一些编号,往往需要在前面补0,以达到一定的位数。但是在数据存储与查询过程中,前面补0的信息可能会被丢失。那么如何保留char类型前面补0的信息呢?

CREATE TABLE `test` (`id` int(11) NOT NULL AUTO_INCREMENT,`code` char(10) NOT NULL DEFAULT '',PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;

如上所示,创建了一个表test,其中有一个字符类型的字段code,长度为10,假设要将"000123"插入到该字段中。

INSERT INTO `test` (`code`) VALUES('000123');

此时在数据库中,该字段显示结果为"123",前面的0被忽略了。如果在查询时需要显示该字段前面的0,可以使用cast()将其转换为char类型。

SELECT id, cast(code as char) as code FROM test;

使用cast()函数后,查询结果会将该字段前面的0同时显示出来。

关于保留char类型字段前面0的问题,还有一个更简单的解决方式。在创建表时,可以将该字段的collate设置成binary。

CREATE TABLE `test` (`id` int(11) NOT NULL AUTO_INCREMENT,`code` char(10) COLLATE binary NOT NULL DEFAULT '',PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;

如上所示,在创建表时,将该字段的collate设置成binary。这样在插入数据时,前面补0的信息也会被存储在数据库中,并在查询时显示。

以上两种方法都可以保留char类型前面补0的信息,具体使用哪种方式需要根据具体的需求进行选择。

声明:关于《MySQL怎么保留char前面的0》以上内容仅供参考,若您的权利被侵害,请联系13825271@qq.com
本文网址:http://www.25820.com/tutorial/14_2255805.html