Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Bạn có thể thêm câu lệnh if trong ORDER BY không?

Chà, bạn có thể sử dụng IF chức năng trong MySQL (Lưu ý nhấn mạnh vào hàm function vì cũng có IF không liên quan tuyên bố ) ...:

ORDER BY IF(TYPE='Member', LNAME, GROUPNAME) ASC

Tuy nhiên, trong trường hợp này, có vẻ như lựa chọn tốt hơn (Từ quan điểm linh hoạt) sẽ là CASE tuyên bố :

ORDER BY 
    CASE `type` 
        WHEN 'Member' THEN LNAME 
        WHEN 'Group' THEN GROUPNAME
        ELSE 1 END 
    ASC

Lưu ý rằng toàn bộ khối từ CASE đến END được coi là một "đơn vị" duy nhất. Kết quả của đó là những gì bạn đang cố gắng sắp xếp chống lại (Do đó, tại sao ASC đến sau khối chứ không phải bên trong nó) ...



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Trong MySQL, tôi có thể trì hoãn kiểm tra tính toàn vẹn tham chiếu cho đến khi cam kết không

  2. giao dịch mysql - quay trở lại bất kỳ ngoại lệ nào

  3. tính tổng thời gian kiểu sử dụng sql

  4. # 1273 - Đối chiếu không xác định:'utf8mb4_unicode_ci' cPanel

  5. JSON_SET () - Chèn hoặc cập nhật giá trị trong tài liệu JSON trong MySQL