MySql Nullfeldbeurteilung und IFNULL-FehlerverarbeitungPS: (Wenn Sie den Vorgang nicht sehen möchten, fügen Sie einfach eine Auswahl außerhalb Ihres SQL hinzu.) Wählen Sie a, b, c aus der Tabellengruppe nach a, b, c. // Wenn zu diesem Zeitpunkt beurteilt wird, dass a, b, c null ist, spielt das keine Rolle. Wählen Sie IFNULL (a, 0), IFNULL (b, 0), IFNULL (3,0). von (wähle a,b,c aus der Tabelle gruppiere nach a,b,c) //Das war's Schauen wir uns diese sehr einfache Tabelle an. Wenn ich SQL-Anweisungen verwende, um nach PID zu gruppieren und Spalten in Zeilen umzuwandeln, werden die Ergebnisse wie folgt angezeigt Egal wie ich IFNULL(SID1,0) oder IF( SID1 is null,0,SID1) ausdrücke, das Ergebnis ist immer noch NULL -.-! Ich fühle mich hilflos. Mein SQL ist so geschrieben. Wenn Sie die MAX-Funktion nicht verwendet haben, können Sie sie ignorieren und sich nur IFNULL ansehen. Es ist offensichtlich, dass ich IFNULL hinzugefügt habe. WÄHLEN PID, MAX(FALL WENN SID = 1 DANN WENNNULL(PNUM ,0) ENDE) ALS SID1, MAX(FALL WENN SID = 2 DANN WENNNULL(PNUM ,0) ENDE) ALS SID2, MAX(FALL WENN SID = 3 DANN WENNNULL(PNUM ,0) ENDE) ALS SID3 AUS ( WÄHLEN PID, SUMME(PNUM) PNUM, SID AUS A GRUPPELN NACH PID ) Temperatur GRUPPELN NACH Temperatur PID Ich habe jedoch festgestellt, dass das Ergebnis immer noch NULL ist, und dann habe ich festgestellt, dass IFNULL () nur feststellen kann, dass das entsprechende Feld in der Tabelle vorhanden und NULL ist, aber in meiner Tabelle gibt es offensichtlich kein solches Feld, sodass es nicht festgestellt werden kann! Nach der Auswahl wird der NULL-Wert in der Abfrage von MySQL nicht erkannt, da er null und IFNULL() ist Nachdem so viel gesagt wurde, wie sollen wir das Problem lösen?Es ist ganz einfach: Wenn Sie keine Uhr haben, besorgen Sie sich einfach eine! (Neue Tabelle erstellen?) Woran denkst du? Entfernen Sie zunächst das IFNULL in der Abfrage. Es hat keine Auswirkung. Verwenden Sie dann eine Select-Anweisung, um den Ergebnissatz als Tabelle abzufragen. Dies entspricht dem in der abgefragten Tabelle vorhandenen Feld und dem Wert NULL. WÄHLEN PID,IFNULL(SID1,0) SID1,IFNULL(SID2,0) SID2,IFNULL(SID3,0) SID3 AUS ( WÄHLEN PID, MAX(FALL, WENN SID = 1, DANN PNUM ENDE) ALS SID1, MAX(FALL WENN SID = 2 DANN PNUM ENDE) ALS SID2, MAX(FALL WENN SID = 3 DANN PNUM ENDE) ALS SID3 AUS ( WÄHLEN PID, SUMME(PNUM) PNUM, SID AUS A GRUPPELN NACH PID ) Temperatur GRUPPELN NACH Temperatur PID ) temp1 Seht ihr, das Ergebnis ist da, hahahaha~ Bei der Verwendung von IFNULL() in MySql sind Probleme aufgetretenÜber die ifnull()-FunktionWENNNULL(a,b) c Wenn a nicht null ist, dann ist der Wert von c a Wenn a null ist, dann ist der Wert von c b Probleme im tatsächlichen EinsatzWENNNULL(a,b) c Wenn a nicht null, sondern eine leere Zeichenfolge ist, dann ist der Wert von c eine leere Zeichenfolge. Das tatsächlich gewünschte Ergebnis ist, dass a eine leere Zeichenfolge oder null ist und der Wert von c b ist. LösungVerwenden Sie stattdessen die Funktion if() wenn (a = '' oder a ist null, b, a) c Dies bedeutet: wenn a null oder eine leere Zeichenfolge ist, c=b; andernfalls c=a; Das Obige ist meine persönliche Erfahrung. Ich hoffe, es kann Ihnen als Referenz dienen. Ich hoffe auch, dass Sie 123WORDPRESS.COM unterstützen werden. Das könnte Sie auch interessieren:
|
<<: Mehrere Gründe, HTML nicht zu komprimieren
>>: Eine detaillierte Einführung in die Verwendung von Blockkommentaren in HTML
Ich bin erst vor kurzem mit countly in Kontakt ge...
In diesem Artikelbeispiel wird der spezifische Co...
Inhaltsverzeichnis 1. Gemeinsam genutztes CommonM...
Vielleicht weiß jeder, dass die JS-Ausführung die...
Wie funktioniert „Adaptives Webdesign“? Eigentlich...
Heute musste ich nach dem Neustart des Spiels fes...
Methode 1: Absenden über den Absenden-Button <...
Jeder qualifizierte Linux-Betriebs- und Wartungsm...
Neue Funktionen in MySQL 8: Meine persönliche Mei...
Docker ordnet Ports nur IPv6 zu, nicht aber IPv4 ...
Ich habe viele Tutorials gelesen, aber festgestel...
Hintergrund Das Agile-Modell wird häufig verwende...
Die Installationsschritte für CentOS 7.3 werden a...
Ein Datenvolumencontainer ist ein Container, der ...
1. Überprüfen Sie, ob der MySQL-Dienst gestartet ...