在開發中,我們常常需要講數字處理成統一長度,不足長度的用0來填充。這在MySQL中也是非常常見的需求,下面我們來學習如何在MySQL中將不足4位數的數字前面補0。
-- 前面補0語法 LPAD(str, len, padding) -- 示例,將數字1處理成4位長度,不足的用0來填充。 SELECT LPAD(1, 4, '0') -- 輸出結果:0001
上面的代碼片段中,我們使用LPAD函數將數字1處理成了長度為4的字符串,不足的地方用0來填充。接下來,我們來看一個更加詳細的例子。
-- 創建一個測試表 CREATE TABLE `test` ( `id` int(11) NOT NULL AUTO_INCREMENT, `code` varchar(20) NOT NULL COMMENT '編號', `name` varchar(50) NOT NULL COMMENT '名稱', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -- 插入測試數據 INSERT INTO `test` (`code`, `name`) VALUES ('001', '測試1'), ('002', '測試2'), ('003', '測試3'), ('1001', '測試4'), ('1002', '測試5'), ('01003', '測試6'); -- 查詢數據 SELECT * FROM `test` -- 輸出結果 /* +----+--------+-------+ | id | code | name | +----+--------+-------+ | 1 | 001 | 測試1 | | 2 | 002 | 測試2 | | 3 | 003 | 測試3 | | 4 | 1001 | 測試4 | | 5 | 1002 | 測試5 | | 6 | 01003 | 測試6 | +----+--------+-------+ */ -- 將編號code處理成統一長度 SELECT `id`, LPAD(`code`, 4, '0') AS `code`, `name` FROM `test` -- 輸出結果 /* +----+------+-------+ | id | code | name | +----+------+-------+ | 1 | 0001 | 測試1 | | 2 | 0002 | 測試2 | | 3 | 0003 | 測試3 | | 4 | 1001 | 測試4 | | 5 | 1002 | 測試5 | | 6 | 1003 | 測試6 | +----+------+-------+ */
在上面的例子中,我們創建了一個名為test的測試表,并插入了一些數據。然后,我們使用LPAD函數將編號code字段處理成了統一的長度,不足的地方用0來填充。最終輸出了處理后的頁面。