a
id typeid 1 10
2 10
3 20
4 30
5 14
6 14
7 18
8 20
9 30
10 20
11 20
12 30
13 14
14 15
15 10
16 20
17 30
18 10
我要查询条件是typeid不同数字两条!并按id高取得id结果如下id typeid 18 10
17 30
16 20
15 10
14 15
13 14
12 30
11 20
7 18
6 14我只想得到id
typeid可以不用打印出来就是得到18,17,16,15,14,13,12,11,7,6
他们之间可以不分先后!
只要得到typeid分类高到底取id就行!如17,18,16,15,14,13,12,11,7,6 也可以
id typeid 1 10
2 10
3 20
4 30
5 14
6 14
7 18
8 20
9 30
10 20
11 20
12 30
13 14
14 15
15 10
16 20
17 30
18 10
我要查询条件是typeid不同数字两条!并按id高取得id结果如下id typeid 18 10
17 30
16 20
15 10
14 15
13 14
12 30
11 20
7 18
6 14我只想得到id
typeid可以不用打印出来就是得到18,17,16,15,14,13,12,11,7,6
他们之间可以不分先后!
只要得到typeid分类高到底取id就行!如17,18,16,15,14,13,12,11,7,6 也可以
[征集]分组取最大N条记录方法征集,及散分....
select k.*
from a k join (select max(id) as m_id ,typeid from a group by typeid ) b on k.typeid=b.typeid
where k.id=b.m_id or k.id=(select max(id) from a where typeid =b.typeid and id<>b.m_id);
/*
+------+--------+
| id | typeid |
+------+--------+
| 6 | 14 |
| 7 | 18 |
| 11 | 20 |
| 12 | 30 |
| 13 | 14 |
| 14 | 15 |
| 15 | 10 |
| 16 | 20 |
| 17 | 30 |
| 18 | 10 |
+------+--------+
10 rows in set (0.00 sec)
*/
from a t
where 2>(select count(*)
from a
where typeid=t.typeid
and id>t.id)