Heim  >  Artikel  >  Backend-Entwicklung  >  Bezüglich der Frage der Sortierung nach vorgegebenen Regeln in der Datenbank

Bezüglich der Frage der Sortierung nach vorgegebenen Regeln in der Datenbank

WBOY
WBOYOriginal
2016-08-04 09:21:43898Durchsuche

Die Datenbank verfügt über einen Spaltenspeicher, in dem die Namen der Einkaufszentren gespeichert werden. Jetzt möchte ich, dass das Einkaufszentrum Taobao ist, wobei Amazon an erster Stelle steht. Die anderen Einkaufszentren werden nach Datenerstellungszeit sortiert und es ist eine Paginierung erforderlich.
Ich habe einige Ideen
MySQL bietet eine Methode zum Sortieren nach Feldern, aber die Datei muss alle Einkaufszentrentypen enthalten, die bereits in der Datenbank vorhanden sind, andernfalls stören diejenigen, die nicht enthalten sind, die Sortierung, aber Einkaufszentren unter dem Laden (z (z. B. Nichia usw.) usw.) wird weiter zunehmen, sodass sich diese SQL-Anweisung weiterhin ändern wird. Deshalb wollte ich fragen, ob es gute Lösungen gibt.
Zweitens fügen Sie ein Feld hinzu, das der digitalen ID des Geschäfts entspricht, und sortieren Sie nach der digitalen ID. Das Produkt möchte jedoch jetzt, dass Taobao und Amazon an erster Stelle stehen, aber Chao Lingxi möchte, dass Nichia an erster Stelle steht. Wird diese Logik nicht gestört?
Bitte sagen Sie mir, ob Sie gute Pläne haben.

Antwortinhalt:

Die Datenbank verfügt über einen Spaltenspeicher, in dem die Namen der Einkaufszentren gespeichert werden. Jetzt möchte ich, dass das Einkaufszentrum Taobao ist, wobei Amazon an erster Stelle steht. Die anderen Einkaufszentren werden nach Datenerstellungszeit sortiert und es ist eine Paginierung erforderlich.
Ich habe einige Ideen
MySQL bietet eine Methode zum Sortieren nach Feldern, aber die Datei muss alle Mall-Typen enthalten, die bereits in der Datenbank vorhanden sind, sonst stören diejenigen, die nicht enthalten sind, die Sortierung, aber Malls unter dem Store (z (z. B. Nichia usw.) usw.) wird weiter zunehmen, sodass sich diese SQL-Anweisung weiterhin ändern wird. Deshalb wollte ich fragen, ob es gute Lösungen gibt.
Zweitens fügen Sie ein Feld hinzu, das der digitalen ID des Geschäfts entspricht, und sortieren Sie nach der digitalen ID. Das Produkt möchte jedoch jetzt, dass Taobao und Amazon an erster Stelle stehen, aber Chao Lingxi möchte, dass Nichia an erster Stelle steht. Wird diese Logik nicht gestört?
Bitte sagen Sie mir, ob Sie gute Pläne haben.

Für diese Frage sind zwei Felder erforderlich: eines ist das Gewicht und das andere ist die Sorte.
Sie sehen so aus

  1. Taobao: Gewicht: 100 Sortierung: 1,

  2. Amazon: weith: 100 sort: 2,

  3. Nichia: Gewicht: 100 Sorte: 3

  4. Sonstige: Gewicht: 1 Sorte: 1

  5. ...

Ihre SQL sollte so geschrieben sein: select * from table order by weight * sort, das wird das Problem lösen. Wenn Sie Berechtigungen ändern möchten, können Sie Gewichtung oder Sortierung anpassen

Komplexe logische Sortierung sollte nicht auf Datenbankebene erfolgen, sondern auf Codeebene, beispielsweise in einem sortierbaren Array oder einer Karte. Definieren Sie die Sortierregeln einfach selbst.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn