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
Vorwort Als grundlegende Datenstruktur spielen Ar...
Inhaltsverzeichnis 1. Wiederholte Erklärung 1,1 v...
Website-Link: http://strml.net/ Von Samuel Reed T...
erben 1. Was ist Vererbung? Vererbung: Zunächst e...
Beängstigend, nicht wahr? Übersetzung im Bild: (v...
<br />Gestern habe ich beim W3C gesehen, das...
[LeetCode] 176. Zweithöchstes Gehalt Schreiben Si...
Inhaltsverzeichnis 1. Teleport-Nutzung 2. Vervoll...
Vorwort Heutzutage gibt es viele Geräte, darunter...
Vom Backend zum Frontend: was für eine Tragödie. A...
Wie können Sie die Leistung einer Webseite verbes...
Update: Jetzt können Sie auf die offizielle MySQL...
<br />Worte sind das unvermeidliche Produkt ...
Hintergrund Als ich kürzlich SQL-Anweisungen schr...
keine Ahnung nvm ist für die Verwaltung mehrerer ...