测试 -
CREATE TABLE shop (
article INT(4) UNSIGNED ZEROFILL DEFAULT '0000' NOT NULL,
dealer CHAR(20) DEFAULT '' NOT NULL,
price DOUBLE(16,2) DEFAULT '0.00' NOT NULL,
PRIMARY KEY(article, dealer));
INSERT INTO shop VALUES
(1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),
(3,'C',1.69),(3,'D',1.25),(4,'D',19.95);
我的查询 -
SELECT MAX( article ) AS article
FROM shop
输出 -
+---------+
| article |
+---------+
| 4 |
+---------+
但是我期待 -
+---------+
| article |
+---------+
| 0004 |
+---------+
我试过CAST
但没有运气。
让我知道如何处理这个问题。
仅供参考 - 我试图为此创建SQL Fiddle但是小提琴在执行SELECT * FROM shop
然而,在phpmyadmin
中,ooo's
填充正常。
MySQL
设置 - 服务器版本:5.5.16
PHPMYADMIN
设置 - 版本信息:3.4.5
我的表数据表示 -
答案 0 :(得分:2)
您可以使用LPAD()
。
SELECT LPAD(article, 4, 0) FROM table_name;
答案 1 :(得分:2)
SELECT LPAD(MAX( article ), 4, '0') AS article FROM shop;
- )
答案 2 :(得分:1)
当您使用ZEROFILL时,它实际上是以该形式将其存储在数据库中,但在检索它时会截断零。所以你应该使用: -
SELECT LPAD(MAX( article ), 4, '0') AS article FROM shop;