Beispiel für die Methode „Mysql implementiert Nullwerte zuerst/letzten“

Beispiel für die Methode „Mysql implementiert Nullwerte zuerst/letzten“

Vorwort

Wir wissen bereits, dass MySQL den SQL-Befehl „SELECT“ und die WHERE-Klausel verwendet, um Daten aus einer Tabelle zu lesen. Wenn das angegebene Abfragebedingungsfeld jedoch NULL ist, funktioniert der Befehl möglicherweise nicht ordnungsgemäß.

Um mit dieser Situation umzugehen, bietet MySQL drei Hauptoperatoren:

  • IS NULL: Dieser Operator gibt „true“ zurück, wenn der Spaltenwert NULL ist.
  • IS NOT NULL: Der Operator gibt „true“ zurück, wenn der Spaltenwert nicht NULL ist.
  • <=>: Ein Vergleichsoperator (unterscheidet sich vom =-Operator), der true zurückgibt, wenn beide verglichenen Werte NULL sind.

Bedingte Vergleichsoperationen auf NULL sind etwas Besonderes. Sie können = NULL oder != NULL nicht verwenden, um nach NULL-Werten in einer Spalte zu suchen.

In MySQL gibt ein Vergleich eines NULL-Werts mit einem beliebigen anderen Wert (auch NULL) immer „false“ zurück, d. h., NULL = NULL gibt „false“ zurück.

MySQL verarbeitet NULL mit den Operatoren IS NULL und IS NOT NULL.

Ich migriere derzeit ein Projekt von Oracle nach MySQL. Dabei stieß ich auf einige Oracle-Funktionen, die MySQL nicht bietet. Daher musste ich die Funktionen anpassen oder einen Weg finden, die Funktionen für die Transformation zu ersetzen.

Wenn Oracle Daten sortiert, kann es manchmal „Nullen zuerst“ oder „Nullen zuletzt“ verwenden, um Nullwerte an den ersten oder letzten Platz zu setzen.

Oracle-Methode:

Nullwerte werden zuerst sortiert

select * from A order by a desc null first

Nullwerte werden zuletzt sortiert

select * from A order by a desc null last

Wenn Sie jedoch zu MySQL migrieren, bietet MySQL keine ähnliche Funktion. Wie können Sie sie also implementieren?

Hier ist die Lösung:

Nullwerte werden zuletzt sortiert, wobei die IF- und ISNULL-Funktionen von MySQL verwendet werden. Wenn es leer ist, gibt es 1 zurück, andernfalls 0

wähle * aus A, sortiert nach WENN(ISNULL(a),1,0),a desc

Nullwerte werden zuerst sortiert, wobei die IF- und ISNULL-Funktionen von MySQL verwendet werden. Wenn es leer ist, gibt es 1 zurück, andernfalls 0

wähle * aus A, sortiert nach WENN(ISNULL(a),0,1),a desc

Wenn in mybatis Oracle- und MySQL-Versionen benötigt werden, können Sie entweder einen Datentabellenversionsbezeichner dbType aus dem Hintergrund übergeben oder direkt die _databaseId-Methode von mybatis verwenden.

 <wenn test="dbType=='oracle'">
   Sortieren nach c.create_date desc nulls letzte
   </if>
   <if test="dbType=='mysql'">
   Sortieren nach IF(ISNULL(c.create_date),1,0), c.create_date desc
   </if>

Zusammenfassen

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Wenn Sie Fragen haben, können Sie eine Nachricht hinterlassen. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM.

Das könnte Sie auch interessieren:
  • Tutorial zum Verstehen und Verwenden von NULL-Werten in MySQL
  • Detaillierte Erklärung der NULL-Werte in MySQL
  • Unterscheiden Sie zwischen Nullwert und leerem Zeichen ('''') in MySQL
  • Instanzmethode für MySQL-String-Verkettung und Festlegen von Nullwerten
  • Detaillierte Erläuterung zum Beispiel der MySQL-NULL-Wertverarbeitung
  • Kennen Sie den Unterschied zwischen leerem Wert und Nullwert in MySQL
  • In diesem Artikel erfahren Sie mehr über NULL in MySQL

<<:  Diagramm des Tutorials zur Installation der Version VMware 15.5 unter Windows_Server_2008_R2

>>:  Detaillierte Erklärung der Verwendung von SetUp- und Reactive-Funktionen in Vue3

Artikel empfehlen

Lösung für die nicht angezeigte IP-Adresse unter Linux

Inhaltsverzeichnis Vorwort Lösung: Schritt 1 Schr...

Spezifische Verwendung von Vues neuem Spielzeug VueUse

Inhaltsverzeichnis Vorwort Was ist VueUse Einfach...

Einfaches Beispiel für die Leistungsoptimierung von MySQL-SQL-Anweisungen

Einfaches Beispiel für die Leistungsoptimierung v...

Was Sie über die Transaktionsisolierung von msyql wissen müssen

Was ist eine Transaktion? Eine Transaktion ist ei...

Zusammenfassung der Wissenspunkte zur MySQL-Architektur

1. Datenbanken und Datenbankinstanzen Beim Studiu...

Erläuterung des MySQL-Abfragebeispiels anhand instanziierter Objektparameter

Dieser Artikel stellt vor, wie Sie durch Instanzi...

Zwei Möglichkeiten zur Installation von Python3 auf Linux-Servern

Erste Methode Alibaba Cloud- und Baidu Cloud-Serv...

Beispieldemonstration der Vuex-Modularisierung und Namespaces

1. Zweck: Machen Sie den Code leichter wartbar un...

Verwenden von jQuery zum Implementieren des Karusselleffekts

In diesem Artikel finden Sie den spezifischen Cod...

Ausführliches Tutorial zur Installation von MySQL 8.0.19 (Windows 64 Bit)

Inhaltsverzeichnis MySQL initialisieren MySQL-Die...

Grafisches Tutorial zur Installation und Konfiguration von CenOS6.7 mysql 8.0.22

CenOS6.7 installiert MySQL8.0.22 (empfohlene Samm...