본문 바로가기
MySql

MySQL 날짜와 시간을 내림차순으로 정렬 하시겠습니까?

by 베이스 공부 2020. 9. 15.
반응형

모두 I want to display last 5 entered data for specific id. 내 SQL 쿼리는

SELECT id, name, form_id, DATE(updated_at) as date
  FROM wp_frm_items
  WHERE user_id = 11 && form_id=9
  ORDER BY updated_at DESC

updated_at 는 DATETIME입니다.

마지막 5 개 항목을 시간이 아닌 날짜별로 표시합니다. 같은 날짜에 알파벳순으로 정렬됩니다.

diff 시간과 같은 날짜에 3 개의 항목이 있다고 가정합니다.

의 말을하자

Ajay 1/3/2012 1:15
John 1/3/2012 1:00
Bony 1/3/2012 1:10

위의 쿼리를 쿼리 한 후

내가 얻은 것은

Ajay 1/3/2012 1:15
Bony 1/3/2012 1:10
John 1/3/2012 1:00

날짜순으로 정렬 한 다음 알파벳순으로 정렬

내가 원하는 건 이거 ..

John 1/3/2012 1:00
Bony 1/3/2012 1:10
Ajay 1/3/2012 1:15

날짜와 시간으로도 정렬 ...

 

해결 방법

 

마지막 5 개 행을 오름차순으로 정렬하려면 하위 쿼리가 필요합니다.

SELECT *
FROM
    ( SELECT id, name, form_id, DATE(updated_at) AS updated_date, updated_at
      FROM wp_frm_items
      WHERE user_id = 11 
        AND form_id=9
      ORDER BY updated_at DESC
      LIMIT 5
    ) AS tmp
ORDER BY updated_at

질문을 10 번 읽은 후 이것은 (아마도) 당신이 원하는 것일 수 있습니다. 날짜순으로 내림차순으로 정렬 한 다음 시간별로 (동일한 날짜에) 오름차순으로 정렬합니다.

SELECT id, name, form_id, DATE(updated_at) AS updated_date
FROM wp_frm_items
WHERE user_id = 11 
  AND form_id=9
ORDER BY DATE(updated_at) DESC
       , updated_at ASC

 

참조 페이지 https://stackoverflow.com/questions/9511882

 

 

반응형

댓글