2013-11-25 8 views
5

Wir haben solche Tabelle in MySQL: ID - Int; Titel - varchar; hd - Tinyint; Quelle - Tinyint; aktiv - Tinyint;MySQL Abfrage mit komplexer Sortierung

Wie bekomme ich Daten aus der Datenbank mit einer solchen Sortierung:

1. hd >= 3 AND source <> 5 
2. hd >= 3 AND source = 5 
3. hd = 2 
4. other, i.e. hd < 2 

Bitte zeigen Sie mir, wie es zu tun richtig und eine SQL-Abfrage?

Vielen Dank.

Antwort

6
select * from your_table 
order by case when hd >= 3 AND source <> 5 then 1 
       when hd >= 3 AND source = 5 then 2 
       when hd = 2 then 3 
       else 4 
     end 
4

Versuchen Sie folgendes:

select * 
from table_name 
order by case when hd >= 3 AND source <> 5 then 1 
       when hd >= 3 AND source = 5 then 2 
       when hd = 2 then 3 
       else 4 
     end