select * from t group by username order by logtime descMySQL对上述语句的处理方式是: 先群组,群组后再排序
但是我现在想排序后再群组该如何解决呢?
---------
ps.用如下方式可以解决, 但是感觉效率太低, 不知道还有没有更好的办法!
谢谢大家!select * from (select * from t order by logtime desc) t2 group by username
但是我现在想排序后再群组该如何解决呢?
---------
ps.用如下方式可以解决, 但是感觉效率太低, 不知道还有没有更好的办法!
谢谢大家!select * from (select * from t order by logtime desc) t2 group by username
yueliangdao0608((深圳PHPER,MSN:[email protected]))
-------------
谢谢你的回复,但是我求的是解决方法
--------难道一样? 细细考虑一下
兄弟,你都是星星了.好像不见你有查google啊.
这是我查询的结果.
select max(log_time),user_name from table_name group by user_name order by max(log_time);
好用的话,别忘了给分.
而我是需要group by出最大的一行
我可是试过的哦.你为什么不试试呢?
mysql> select id,user_id from d;
+------+---------+
| id | user_id |
+------+---------+
| 1 | 7 |
| 2 | 8 |
| 3 | 9 |
| 4 | 7 |
| 5 | 9 |
+------+---------+
5 rows in set (0.00 sec)mysql> select max(id),user_id from d group by user_id order by max(id);
+---------+---------+
| max(id) | user_id |
+---------+---------+
| 2 | 8 |
| 4 | 7 |
| 5 | 9 |
+---------+---------+
3 rows in set (0.00 sec)
| id | user_id | other |
+------+---------+--------+
| 1 | 7 | 8 |
| 2 | 8 | 2 |
| 3 | 9 | 3 |
| 4 | 7 | 4 |
| 5 | 9 | 5 |
+------+---------+--------+我想把与最大ID同行的other字段的值也取出, 用你的语句是取不到的
如果你非要select *这种办法,
当我没有说过好了.
我那个方法,某些情况下可能是可以的。对于楼主的情况可能不能正常工作。前一阵子看了一下。可能还需要一个子查询。因为对于他列出的第三项other,mysql可能会选出一个随机结果。而不是对应的最大的id 列。
http://nalai.net/content/view/305072/32/