欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

MySQL怎么保留char前面的0

傅智翔1年前10瀏覽0評論

MySQL中的char類型通常用于存儲定長的字符串。對于一些特殊的字符串,例如一些編號,往往需要在前面補0,以達(dá)到一定的位數(shù)。但是在數(shù)據(jù)存儲與查詢過程中,前面補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;

如上所示,創(chuàng)建了一個表test,其中有一個字符類型的字段code,長度為10,假設(shè)要將"000123"插入到該字段中。

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

此時在數(shù)據(jù)庫中,該字段顯示結(jié)果為"123",前面的0被忽略了。如果在查詢時需要顯示該字段前面的0,可以使用cast()將其轉(zhuǎn)換為char類型。

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

使用cast()函數(shù)后,查詢結(jié)果會將該字段前面的0同時顯示出來。

關(guān)于保留char類型字段前面0的問題,還有一個更簡單的解決方式。在創(chuàng)建表時,可以將該字段的collate設(shè)置成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;

如上所示,在創(chuàng)建表時,將該字段的collate設(shè)置成binary。這樣在插入數(shù)據(jù)時,前面補0的信息也會被存儲在數(shù)據(jù)庫中,并在查詢時顯示。

以上兩種方法都可以保留char類型前面補0的信息,具體使用哪種方式需要根據(jù)具體的需求進(jìn)行選擇。