>

Android 응용 프로그램에서 사용되는 SQLite DB에 대한 올바른 쿼리를 찾으려고합니다. 제목, 텍스트, isFavorite, isTrash, creationEpoch, modifiedEpoch와 같은 필드가있는 Notes가 포함 된 DB가 있습니다. 내가하고 싶은 일은 예를 들어 modifiedEpoch ASC/DESC로 DB 쿼리를 정렬하지만 즐겨 찾는 모든 행을 맨 위에 배치하는 것입니다.

스택 오버플로에 대해 몇 가지 유사한 질문을 살펴 보았지만 작동하지 않습니다.

이것은 내가 지금까지 시도한 것의 예입니다 :

SELECT *
FROM note
WHERE trash = 0
ORDER BY CASE modified_epoch WHEN favorite = 1 THEN 0 ELSE 1 END DESC,
         favorite DESC

즐겨 찾기를 즐겨 찾기에 배치하지만 modifiedEpoch로 정렬하지 않았으며 즐겨 찾기가 아닌 항목은 ASC 순서로 정렬 된 것 같습니다.


  • 답변 # 1

    두 가지 정렬 기준을 원합니다 :

    isFavorite를 기반으로하는 첫 번째 정렬

    그런 다음 수정 된 Epoch에서

    isFavorite가 0 또는 1 일 수 있다고 가정하면 다음과 같이 작동합니다.

    ORDER BY isFavorite DESC
           , modifiedEpoch DESC
    
    

    이것은 모든 호의를 최우선으로하여 가장 최근 호의를 우선으로하고 비호의를 호소하며 가장 최근 호의로 시작합니다 (modifiedEpoch의 DESC로 인해).

  • 답변 # 2

    시도

    SELECT * 
    FROM note 
    WHERE trash = 0 
    ORDER BY CASE WHEN favorite = 1 THEN 0 ELSE 1 END, modified_epoch DESC
    
    

    favorite = 1은 modified_epoch가 먼저 정렬하고 나머지는 모두 좋아하는 = 0, 2가 ... modified_epoch에 따라 정렬됩니다

관련 자료

  • 이전 linux - 텍스트를 CSV로 변환하는 동안 파일에서 큰 따옴표를 제거하는 방법은 무엇입니까?
  • 다음 powershell - 배치 파일에서 스크립트를 호출 할 때 스위치 매개 변수를 지정하는 방법