Es gibt ein INT-Feld a, der Standardwert ist 0 und die vom Programm übergebene Beurteilungsbedingung ist a = 'abacd'.
Grund
MySQL führt eine logische Beurteilung durch. Wenn es sich um eine Ganzzahlbeurteilung handelt, die Eingabe jedoch eine Zeichenfolge ist, wird die Zeichenfolge in 0 konvertiert. Daher ist
Lösung
Bei der logischen Beurteilung in MySQL sollten Sie sicherstellen, dass der eingehende Wert mit dem Feldtyp übereinstimmt, d. h. Ganzzahlfelder sollten als Ganzzahlen und Zeichenfolgenfelder als Zeichenfolgen beurteilt werden. Wenn typübergreifende Entscheidungen getroffen werden müssen, müssen auf der Grundlage der Geschäftslogik entsprechende Anpassungen vorgenommen werden, um Probleme zu vermeiden.
Wenn Feld a vom Typ Varchar ist und der Wert 0 ist, sollte zur Beurteilung a = '0' anstelle von a = 0 verwendet werden. Der Grund stimmt mit dem obigen Grund, der Zeichenfolge, überein wird in 0 umgewandelt, das Endergebnis ist 0 = 0.
Wenn in MySQL das Datentabellenfeld vom Typ int ist, können Sie beurteilen, ob das Feld 0 ist, und es wird kein Problem geben. Wenn es sich um einen char- oder varchar-Typ handelt, müssen Sie „0“ verwenden. Offensichtlich sind Zeichenfolgen und Ganzzahlen nicht gleichwertig. Machen Sie also nicht so einen dummen Fehler.
Das Folgende ist das Prinzip der im Internet gefundenen MySQL-Suche:MySQL konvertiert zuerst den Feldwert in eine Ganzzahl und vergleicht ihn dann. Wenn die erste Ziffer des Felds eine Zeichenfolge ist, wird sie in eine Ganzzahl umgewandelt und ist 0.
Im Allgemeinen sind bei der Suche nach Zeichenfolgen Anführungszeichen erforderlich.
Das obige ist der detaillierte Inhalt vonSo lösen Sie die Falle des Nullwerturteils in MySQL. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!