나는 다음과 같은 테이블이로 최신 행을 선택하려면? 행 12, 13, 14가 2로 USER_ID 경우 어떻게 USER_ID
SELECT * FROM content
WHERE user_id = 2
그래서, 난 당신이 사용자의 테이블이있는 경우, 또한 행 14
나는 다음과 같은 테이블이로 최신 행을 선택하려면? 행 12, 13, 14가 2로 USER_ID 경우 어떻게 USER_ID
SELECT * FROM content
WHERE user_id = 2
그래서, 난 당신이 사용자의 테이블이있는 경우, 또한 행 14
SELECT * FROM content
WHERE user_id = 2
ORDER BY id DESC
LIMIT 1
을 선택합니다 당신은 최신 기록을 얻으려면 각각 :
내 생각은 MySQL의에서SELECT c.*
FROM content c
INNER JOIN (SELECT user_id, max(id) as maxid
FROM content
GROUP BY user_id) as c1 on c.id = c1.maxid
이 필요 것 :
SELECT *
FROM content
WHERE user_id = 2
ORDER BY id DESC
LIMIT 1
하위 선택을 수행하고 MAX 타임 스탬프 (더 안전 할 수 있음)를 선택할 수 있지만 타임 스탬프가없는 것처럼 보입니다.
'max (timestamp)'가 더 안전한지 여부는 달려있다. 해당 타임 스탬프가'update'에서 업데이트되면 더 이상 ** 생성 ** 타임 스탬프가 아니지만 실제로 원하는 것에 따라 다릅니다. 어쨌든 subselect에 대한 진짜 필요가 없다면, 당신은 단지'timestamp desc limit by order by' – Johan
이 태그는 mysql 태그이므로 'TOP'는 작동하지 않습니다. 'LIMIT'은 MySQL 키워드입니다. –
을 입력하고 "LIMIT 1"을 추가하여 하나의 결과 만 반환하십시오. – zzarbi
최근에 sql-server world에서 죄송합니다. –