2016-05-06 9 views
0

Ich habe eine Tabelle in MySQL und diese Tabelle enthält die Informationen der Anzeigen auf meiner Website. In einigen Fällen muss eine Zeile über das Abfrageergebnis gesetzt werden, um auf der Seite zuerst angezeigt zu werden, und dies kann für einige andere Zeilen häufig erforderlich sein. Ich suche nach einer geeigneten Möglichkeit, eine bestimmte Zeile an den Anfang des Abfrageergebnisses zu schieben.Neuordnen von MySQL-Zeilen basierend auf einer bestimmten Zeile

Was ist die beste Lösung, um diese Aufgabe zu erfüllen?

+3

Normalerweise entweder 'ORDER BY' mit komplizierten Bedingungen oder zwei Abfragen kombinieren. Wie sind die Bedingungen? – tadman

+0

Wenn Sie keine Abfrage & | oder Daten liefern, ist es schwer zu beantworten. –

+1

'Reihenfolge nach Fall, wenn Bedingung = 1 und Andere Bedingung = 2 dann 1 sonst Bedingung 2 Ende, Feld2, Feld3, Feld4 'Auf diese Weise sind diejenigen, die Ihre Bedingung (en) erfüllen, 1.. – xQbert

Antwort

2

lassen vermuten, Ihre spezielle Zeile ein Feld hat wie SpecialAd

SELECT * 
FROM YourTable 
ORDER BY CASE 
       WHEN `SpecialAd` = true THEN 0 
             ELSE 1 
      END, 
      OtherSortField 

mit diesem alle SpecialAd finden die erste Show, und Sie können die zweite SortField verwenden innerhalb jeder Gruppe zu sortieren.

Verwandte Themen