Bevor wir offiziell beginnen, werfen wir einen Blick auf die Konfigurations- und Versionsnummerninformationen des MySQL-Servers, wie in der folgenden Abbildung dargestellt: „Die Nahrung und das Futter müssen bereitstehen, bevor die Truppen aufbrechen.“ Nachdem wir die entsprechende Konfiguration gelesen haben, erstellen wir eine Testtabelle und einige Testdaten. -- Wenn die Personentabelle vorhanden ist, löschen Sie sie zuerst. DROP TABLE IF EXISTS person; - Erstellen Sie eine Personentabelle, in der das Feld „Benutzername“ leer sein kann, und legen Sie einen normalen Index dafür fest. CREATE TABLE person ( ID INT PRIMARY KEY auto_increment, Name VARCHAR(20), mobiles VARCHAR(13), Index(Name) )ENGINE='innodb'; -- Testdaten zur Personentabelle hinzufügen, insert into person(name,mobile) values('Java','13333333330'), ('MySQL','13333333331'), ('Redis','13333333332'), ('Kafka','13333333333'), ('Frühling','13333333334'), ('MyBatis','13333333335'), ('RabbitMQ','13333333336'), ('Golang','13333333337'), (NULL,'13333333338'), (NULL,'13333333339'); wählen Sie * aus Person; Die erstellten Testdaten sind in der folgenden Abbildung dargestellt: Nachdem wir nun die Daten haben, schauen wir uns an, welche Probleme auftreten, wenn die Spalte 1. Zähldaten gehen verloren Wenn eine Spalte einen Wählen Sie Anzahl(*), Anzahl(Name) aus Person; Die Ergebnisse der Abfrageausführung lauten wie folgt: Aus den obigen Ergebnissen können wir ersehen, dass bei Verwendung Lösung Wenn eine Spalte einen Erweitertes Wissen: Verwenden Sie nicht count(constant)
2. Deutlicher Datenverlust Wenn bei Verwendung der Abfrage Wählen Sie die Anzahl (eindeutiger Name, Mobiltelefon) aus der Person aus. Die Ergebnisse der Abfrageausführung lauten wie folgt: Die Originaldaten der Datenbank lauten wie folgt: Aus den obigen Ergebnissen können wir ersehen, dass die 10 Daten in der Spalte mit der Mobiltelefonnummer alle unterschiedlich sind, das Abfrageergebnis jedoch 8 ist. 3.Datenverlust auswählen Wenn eine Spalte Ich muss alle Daten abfragen, außer denen mit dem Namen „Java“. Das erwartete Ergebnis sind Daten mit IDs von 2 bis 10. Bei der Ausführung der folgenden Abfrage jedoch: Wählen Sie * von Person, wobei Name<>'Java' nach ID sortiert ist; - oder wählen Sie * von Person, wobei Name!='Java' nach ID sortiert ist; Die Abfrageergebnisse lauten wie folgt: Es ist ersichtlich, dass die beiden Lösung Um das obige Problem zu lösen, müssen Sie nur das Ergebnis mit Wählen Sie * von Person, wobei Name<>'Java' oder isnull(Name) sortiert nach ID ist; Die endgültigen Ausführungsergebnisse sind wie folgt: 4. Verursacht eine Nullzeiger-Ausnahme Wenn eine Spalte einen Lassen Sie uns zunächst eine Tabelle und einige Testdaten erstellen: -- Wenn die Warentabelle vorhanden ist, löschen Sie sie zuerst. DROP TABLE IF EXISTS Waren; -- Erstellen Sie die Warentabelle CREATE TABLE Waren ( ID INT PRIMARY KEY auto_increment, Zahl int )ENGINE='innodb'; -- Testdaten zur Warentabelle hinzufügen, in Waren(Anzahl) Werte(3),(6),(6),(NULL) einfügen; * aus Waren auswählen; Die Originaldaten in der Tabelle lauten wie folgt: Als nächstes verwenden wir die Wählen Sie Summe(Anzahl) aus Waren, bei denen ID > 4 ist; Die Ergebnisse der Abfrageausführung lauten wie folgt:
Lösen der Nullzeiger-Ausnahme Sie können NullPointerException vermeiden, indem Sie Folgendes verwenden: Wählen Sie ifnull(sum(num), 0) aus Waren, bei denen ID>4; Die Ergebnisse der Abfrageausführung lauten wie folgt: 5. Erhöhte Abfrageschwierigkeit Wenn eine Spalte Der sogenannte erhöhte Abfrageschwierigkeitsgrad bedeutet, dass Sie bei der Durchführung einer Nehmen wir als Beispiel Falsche Verwendung 1: Wählen Sie * aus der Person, wo Name<>null ist; Das Ausführungsergebnis ist leer und es wurden keine Daten gefunden, wie in der folgenden Abbildung dargestellt: Falsche Verwendung 2: Wählen Sie * aus der Person, wo Name!=null; Das Ausführungsergebnis ist ebenfalls leer und es werden keine Daten abgefragt, wie in der folgenden Abbildung dargestellt: Richtige Anwendung 1: Wählen Sie * aus der Person, deren Name nicht null ist; Die Ausführungsergebnisse sind wie folgt: Richtige Anwendung 2: Wählen Sie * von Person, wobei !isnull(Name); Die Ausführungsergebnisse sind wie folgt: Empfohlene Verwendung Alibabas „Java Development Manual“ empfiehlt, dass wir Erweitertes Wissen: NULL hat keinen Einfluss auf den Index Aufmerksame Freunde haben möglicherweise bemerkt, dass ich beim Erstellen Anschließend analysieren wir mit Das Ausführungsergebnis von Aus den obigen Ergebnissen können wir ersehen, dass selbst wenn in Zusammenfassen In diesem Artikel haben wir fünf mögliche Probleme besprochen, die auftreten können, wenn eine Spalte Damit ist dieser Artikel über 5 Probleme (alle schwerwiegend), die durch MySQL Null verursacht werden, abgeschlossen. Weitere Informationen zu Problemen, die durch MySQL Null verursacht werden, finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
<<: So verwenden Sie das Docker-Plugin, um Projekte remote auf Cloud-Servern in IDEA bereitzustellen
>>: Tutorial zu HTML-Tabellen-Tags (23): Zeilenrahmen-Farbattribut BORDERCOLORDARK
Tutorial-Reihe MySQL-Reihe: Grundlegende Konzepte...
Bei unserer täglichen Arbeit führen wir manchmal ...
Apache Superset ist ein leistungsstarkes BI-Tool,...
Frage Bei der Installation von Docker mithilfe de...
Vielleicht habe ich angefangen, falsch zu denken,...
MySQL-SQL-Anweisung zum Erstellen einer Tabelle A...
1. CLion herunterladen, installieren und aktivier...
Inhaltsverzeichnis Installieren Softwareverwaltun...
Inhaltsverzeichnis 1. Komponentenaufblähung 2. Än...
XMeter API bietet einen umfassenden Online-Schnit...
Inhaltsverzeichnis Download des Installationspake...
Inhaltsverzeichnis MySQLs current_timestamp-Falle...
Wird UPDATE gesperrt? Wird die SQL-Anweisung gesp...
Dieser Artikel erläutert anhand von Beispielen di...
Verwenden Sie CSS3, um coole Radar-Scan-Bilder zu...