2017-04-25 2 views
1

Ist es möglich, die Abfrage order_by in MySQL oder in CI anzupassen? So wie ich meine Spalte nach (1, 11, 4, 2, 21, 3, 5, 7) sortieren lassen soll Das Ergebnis wird in der Reihenfolge meiner Bestellung angezeigt.CI Gibt es eine Möglichkeit zum Abfragen von benutzerdefiniertem order_by

Wenn es nicht möglich ist, was ist die beste Problemumgehung, um diese Reihenfolge zu erhalten? Hoffnung auf eine einfache Lösung nur mit der MySQL-Abfrage.

Alle Antworten und Vorschläge sind sehr willkommen. Vielen Dank.

Antwort

5

versuchen diese.

$this -> db -> order_by('FIELD (table.id, 1, 11, 4,2,21,3,5,7)'); 

link

+0

Schön, danke viel Mann, konnte es nicht in den CI-Dokumenten finden. – Charas

+0

Ich bin froh, dass ich helfen konnte :) – webpic

0

Reine Mysql Antwort ist ja ein Feld mit der MYSQL FIELD() Funktion durch eine Setlist bestellen

SELECT * 
FROM mytable 
WHERE id IN ('1', '11', '4', '2', '21', '3', '5', '7') 
ORDER BY FIELD(id, '1', '11', '4', '2', '21', '3', '5', '7') 
+0

habe ich nicht getestet, aber ich frage mich, ob diese Anführungszeichen implizit die restlichen Daten als Strings gegossen. – Strawberry

+0

@Strawberry Sie haben wahrscheinlich Recht. Sie sagen also, die einzelnen Anführungszeichen sind redundent –

+0

Ich sage das sicher. Ich spekuliere auch, ob sie das Ergebnis verändern. – Strawberry

Verwandte Themen