Der folgende Editor bringt Ihnen einen Artikel MySQLImplementierung der benutzerdefinierten Listensortierung nach angegebenen Feldern. Der Herausgeber findet es ziemlich gut, deshalb werde ich es jetzt mit Ihnen teilen und es allen als Referenz geben. Folgen wir dem Editor und werfen wir einen Blick darauf.
Problembeschreibung
Wie wir alle wissen, sortiert die SQL ein bestimmtes Feld in aufsteigender Reihenfolge in MySQL ist (mit ID als Beispiel, das Gleiche unten):
SELECT * FROM `MyTable` WHERE `id` IN (1, 7, 3, 5) ORDER BY `id` ASC
Die SQL für absteigende Reihenfolge ist:
SELECT * FROM `MyTable` WHERE `id` IN (1, 7, 3, 5) ORDER BY `id` DESC
Manchmal kann die obige Sortierung unsere Bedürfnisse nicht erfüllen. Beispielsweise möchten wir nach der ID in der Reihenfolge 5, 3, 7, 1 sortieren, um dies zu erreichen. Dies ist auch eines der Probleme, mit denen viele Kollegen im In- und Ausland häufig konfrontiert sind.
Nachfolgend geben wir eine Lösung zum Sortieren nach einem bestimmten Feld in der Tabelle im gewünschten Listenformat.
Lösung
Verwenden Sie „ORDER BY FIELD“ (ORDER BY FIELD).
Syntax
ORDER BY FIELD(`id`, 5, 3, 7, 1)
Es ist zu beachten, dass nach FIELD kein Leerzeichen steht.
Daher lautet das vollständige SQL:
SELECT * FROM `MyTable` WHERE `id` IN (1, 7, 3, 5) ORDER BY FIELD(`id`, 5, 3, 7, 1)
Gemeinsame Anwendungen
SELECT * FROM `MyTable` WHERE `name` IN ('张三', '李四', '王五', '孙六') ORDER BY FIELD(`name`, '李四', '孙六', '张三', '王五')
Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in MySQL zur Implementierung einer benutzerdefinierten Listensortierung nach angegebenen Feldern. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!