2013-11-27 3 views
0

테이블에서 유일한 행만 선택하고 싶습니다. 누군가 나를 도울 수 있습니까?mysql은 유일한 행만 선택하십시오

SELECT MAX(id), message_id 
FROM tablename 
GROUP BY message_id 

을하고 다음 다른 필드가있는 경우 :

SELECT * FROM table 
where to_user = ? 
and deleted != ? 
and del2 != ? 
and is_read = '0' 
    order by id desc 


+----+-----+------+ 
| id | message_id | 
+----+-----+------+ 
| 1 | 23   | 
| 2 | 23   | 
| 3 | 23   | 
| 4 | 24   | 
| 5 | 25   | 
+----+-----+------+ 

나는

+----+-----+------+ 
| id | message_id | 
+----+-----+------+ 
| 3 | 23   | 
| 4 | 24   | 
| 5 | 25   | 
+----+-----+------+ 
+0

따라서 특정 'message_id'에 가장 큰'id '만 필요합니까? – SWeko

+0

@SWeko'message_id'가 유사하다면 나는 단지 마지막 것을 원한다. – user3006683

+0

* * * 같은 *을 의미하고 마지막 하나가 가장 큰 경우, 광산 또는 아지즈의 답변이 트릭을 수행합니다. – SWeko

답변

4

같은이 시도가 필요

SELECT MAX(id), message_id 
FROM tablename 
WHERE to_user = ? 
AND deleted != ? 
AND del2 != ? 
AND is_read = '0' 
GROUP BY message_id 
ORDER BY id DESC 
+0

감사합니다, 잠시 후 내가 accid 것입니다. – user3006683

1

을 당신은 단지 최대의 ID를해야하는 경우 특정 message_id에 대해서

SELECT max(id), message_id FROM table 
where to_user = ? 
and deleted != ? 
and del2 != ? 
and is_read = '0' 
group by message_id 
    order by id desc 
-1

DISTINCT 키워드를 사용해보십시오. 이것은 정확히 작동 할 것입니다 :

SELECT DISTINCT(message_id), id FROM table; 
관련 문제