Để sắp xếp theo thứ tự bạn muốn, hãy sử dụng các điều kiện của bạn trong ORDER BY, nhưng sử dụng DESC
theo sau họ.
SELECT *
FROM person
WHERE (condition1 OR condition2 OR condition3)
AND maintable.status = static
ORDER BY
condition1 DESC,
condition2 DESC,
condition3 DESC
Nếu điều này không hiệu quả vì truy vấn của bạn phức tạp hơn, thì bạn có thể sử dụng logic boolean để thay đổi truy vấn (A OR B OR C) AND D
thành (A AND D) OR (B AND D) OR (C AND D)
thì bạn có thể sử dụng truy vấn sau:
SELECT *
FROM person
WHERE (condition1 OR condition2 OR condition3)
AND maintable.status = static
ORDER BY
condition1 AND static DESC,
condition2 AND static DESC,
condition3 AND static DESC
AND static
ở đây là không cần thiết vì tất cả các hàng đều trả về nó, nhưng trong một ví dụ phức tạp hơn (trong đó bạn cũng trả về một số hàng không tĩnh) thì bạn sẽ phải thực hiện theo cách này.