2016-05-22 8 views
1

Ich habe folgende Tabelle.SQL-Bestellung nach Feld Wert

enter image description here

einfach ich will, um von meta_key machen, wo Wert LoginTS ist. es ist ein bisschen störend.

ORDER BY meta_value(where meta_key is LoginTS) DESC.

Im traurig, wenn ihr nicht klar genug ..

Erwartetes Ergebnis: enter image description here

+0

Können Sie das erwartete Ergebnis hinzufügen –

Antwort

3
SELECT * 
FROM mytable 
WHERE `meta_key`= 'LoginTS' 
ORDER BY `meta_value` DESC 

SQL FIDDLE DEMO 1

Wenn Sie wollen, dass alle Tabelle zurück zu bekommen, aber zu ORDER BY bestimmten Spalte versuchen Sie dies:

SELECT 
* 
FROM 
    myTable 
    ORDER BY CASE WHEN `meta_key`='LoginTS' THEN 0 ELSE 1 END 

SQL FIDDLE DEMO 2

+0

MySQL hat eine leere Ergebnismenge zurückgegeben (d. H. Null Zeilen). (Abfrage dauerte 0,0006 Sek.), Weiß nicht warum –

+0

es ist 'LoginTS', aber nicht 'LoginTs'. das 's' sollte nicht in Kleinbuchstaben sein. –

+0

@ Saeid Khaleghi versuchen Sie es erneut, ich reparierte die Abfrage –

0

WHERE sollte vor ORDER BY gesetzt werden, versuchen Sie dies:

WHERE meta_key = 'LoginTS' ORDER BY meta_value DESC 
+0

Sollte '..ORDER BY meta_value DESC' sein –

+0

Mast ist DES !!! –

+0

Es war ASC, als ich es von der Frage kopierte ... Ich reparierte es – M4tini

0

Da Sie Willst du mit asc bestellen, könntest du so etwas ausprobieren

order by case when meta_key='LoginTS' then 0 else 1 end 
+0

Tyvm, arbeitete wie ein Charme. –

+0

@ SaeidKhaleghi Wie würde dies Ihnen das erwartete Ergebnis geben? Sie haben nur zwei Datensätze, in denen 'meta_key = 'LoginTS', aber dies wird alle Datensätze –

+0

@Prdp Ich habe nur das und ich bekomme das genaue Ergebnis, wie ich wollte. –