解决方案 »
- mysql 查询整个数据库中某个特定值所在的表和字段的方法?
- mysql found_rows()的疑问
- 我想问下为什么我的mysql front不能上到Mysql服务器连接127.0.0.1
- 该安装哪个MYSQL?
- 数据库操作中当UPDATE不成功时,我在Insert 出现重复键问题??????
- MySql字符串函数问题
- sql语句:如何查询某列数值(int)按照数值的大小来排列?
- MySQL问题,在不破坏记录的前提下,如何从新排ID的顺序呢?
- 在postgres数据库中对表中的字段int型的,实现自动增长这个语句怎么写?
- mysql,cross 连接查询
- mysql插入一条记录 有语句木 希望分享一下 谢谢
- mysql Connector/net不能更新或删除
参考一下这个贴子的提问方式http://bbs.csdn.net/topics/320211382
1. 你的 create table xxx .. 语句
2. 你的 insert into xxx ... 语句
3. 结果是什么样,(并给以简单的算法描述)
4. 你用的数据库名称和版本(经常有人在MS SQL server版问 MySQL)
CREATE TABLE `test` (
`id` INT(1) UNSIGNED NOT NULL AUTO_INCREMENT,
`type` TINYINT(1) DEFAULT NULL,
`date` VARCHAR(10) DEFAULT NULL,
`times` VARCHAR(10) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8INSERT INTO `test` (`id`, `type`, `date`, `times`) VALUES
(1, 1, NULL, ''),
(2, 1, NULL, ''),
(3, 2, '2015-01-02', '09:12'),
(4, 1, NULL, ''),
(5, 1, NULL, ''),
(6, 2, '2015-02-03', '11:11'),
(7, 2, '2014-12-11', '16:54'),
(8, 1, NULL, ''),
(9, 1, NULL, '');
想得到的数据如下
9 1
8 1
5 1
4 1
2 1
1 1
6 2 2015-02-03 11:11
3 2 2015-01-02 09:12
7 2 2014-12-11 16:54
+----+------+------------+-------+
| id | type | date | times |
+----+------+------------+-------+
| 1 | 1 | NULL | |
| 2 | 1 | NULL | |
| 3 | 2 | 2015-01-02 | 09:12 |
| 4 | 1 | NULL | |
| 5 | 1 | NULL | |
| 6 | 2 | 2015-02-03 | 11:11 |
| 7 | 2 | 2014-12-11 | 16:54 |
| 8 | 1 | NULL | |
| 9 | 1 | NULL | |
+----+------+------------+-------+
9 rows in set (0.00 sec)mysql> select * from test
-> order by type,`date` desc, `id` desc;
+----+------+------------+-------+
| id | type | date | times |
+----+------+------------+-------+
| 9 | 1 | NULL | |
| 8 | 1 | NULL | |
| 5 | 1 | NULL | |
| 4 | 1 | NULL | |
| 2 | 1 | NULL | |
| 1 | 1 | NULL | |
| 6 | 2 | 2015-02-03 | 11:11 |
| 3 | 2 | 2015-01-02 | 09:12 |
| 7 | 2 | 2014-12-11 | 16:54 |
+----+------+------------+-------+
9 rows in set (0.00 sec)mysql>
select * from test
order by type,(case when type=1 then id else date end) desc