# Table structure for table 't1'
#CREATE TABLE `t1` (
  `f1` char(1) default NULL,
  `f2` decimal(4,2) default NULL,
  `f3` tinyint(1) unsigned default NULL
) TYPE=MyISAM;#
# Dumping data for table 't1'
#INSERT INTO `t1` (`f1`, `f2`, `f3`) VALUES("1", "100.00", "1");
INSERT INTO `t1` (`f1`, `f2`, `f3`) VALUES("1", "102.00", "2");
INSERT INTO `t1` (`f1`, `f2`, `f3`) VALUES("2", "40.00", "5");
INSERT INTO `t1` (`f1`, `f2`, `f3`) VALUES("2", "60.00", "7");
INSERT INTO `t1` (`f1`, `f2`, `f3`) VALUES("6", "2.00", "10");
INSERT INTO `t1` (`f1`, `f2`, `f3`) VALUES("6", "23.00", "0");
INSERT INTO `t1` (`f1`, `f2`, `f3`) VALUES("6", "115.00", "0");
INSERT INTO `t1` (`f1`, `f2`, `f3`) VALUES("6", "13.00", "1");
INSERT INTO `t1` (`f1`, `f2`, `f3`) VALUES("6", "23.00", "11");
INSERT INTO `t1` (`f1`, `f2`, `f3`) VALUES("6", "13.00", "31");SELECT f1,
       SUBSTRING(MIN(CONCAT(f3,LPAD(f2,6,'0'))),2) AS f2,
       LEFT(MIN(CONCAT(f3,LPAD(f2,6,'0'))),1) AS f3
FROM t1 GROUP BY f1 ;+------+--------+------+
| f1   | f2     | f3   |
+------+--------+------+
| 1    | 100.00 | 1    |
| 2    | 040.00 | 5    |
| 6    | 023.00 | 0    |
+------+--------+------+
3 rows in set (0.00 sec)唯一要注意的是在 f1 = 6 时 有多个 f3=0 ,
这时我们所取的值为 f3+f2 最小的值