这是我得到的表:
id userid contactid
401 7 1
403 7 1
405 3 7
407 1 7
408 7 1
409 7 3
410 3 7
411 7 1
412 7 3
413 7 4
420 1 7
423 7 1
我想从中获取的是用户ID或contactid的最高ID,当它为7时
SELECT id from table WHERE userid=7 OR contactid=7
AND id NOT IN
(SELECT id from table WHERE userid=7 OR contactid=7
ORDER BY id DESC LIMIT 1)
这就是我所做的,而且它不起作用。
在这个查询中我想收到3行,那些是:(id) 412413423
谢谢!
答案 0 :(得分:3)
select userid, contactid, max(id)
from t
where userid = 7
group by userid, contactid;
但是,如果我认为这些是没有排序的对,那么这个版本对我来说最有意义:
select least(userid, contactid), greatest(userid, contactid), max(id)
from t
where userid = 7 or contactid = 7
group by least(userid, contactid), greatest(userid, contactid)
当我以这种方式思考问题时,问题开始真正有意义。
答案 1 :(得分:3)
由于userid或contactid必须为7,因此您可以按该列的添加总数进行分组:
SELECT MAX(Id)
FROM yourtable
WHERE userid = 7 or contactid = 7
GROUP BY userid + contactid
结果:
MAX(ID)
423
412
413
答案 2 :(得分:0)
尝试将您的查询更改为SELECT MAX('id') - 应该这样做 另见:PHP MySQL max() function producing 5