Hỏi về cách sort trong mysql

ví dụ e có 1 field là status gồm các giá trị sau: OK, NOT_OK, NOT_DONE
Giờ e muốn sort theo thứ tự kia cho các record thì có ngoài cách
ORDER BY FIELD và ORDER BY status = ‘OK’ DESC, status = ‘NOT_OK’ DESC, status = ‘NOT_DONE’ DESC thì có cách nào tối ưu hơn k?

đầu tiên thấy lệnh order by bạn viết thấy lạ lạ tưởng sai, vào phpmyadmin test thử mới biết có cú pháp này thiệc hả @@ :v vì thường mình hay order by COLUMN ASC|DESC chứ không kiểu order by COLUMN = ‘VALUE’ ASC|DESC như bạn.

hai là cột status như bạn mô tả kia thì nó có 3 giá trị cố định, thường thì chỉ để filter trong WHERE chứ sao lại dùng để sort nhỉ. sort người ta sort theo column có các giá trị khác nhau như id, hoặc có giá trị giống nhau nhưng cần sort như age chẳng hạn. @@

2 Likes

SORT thay vì fildter vì chỉ muốn get ra 1 list được sắp xếp theo trạng thái kia thôi. Ví dụ danh sách khách mua hàng của bạn: nợ hàng lên đầu, chưa trả thứ 2, là đã thanh toán cho xuống cuối. kiểu như vậy đó

1 Like

Mình chỉ tìm ra ORDER BY FIELD() mà thôi, cái kia tìm mãi ko thấy.

4 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?