Heim >Datenbank >MySQL-Tutorial >So lösen Sie die Falle des Nullwerturteils in MySQL

So lösen Sie die Falle des Nullwerturteils in MySQL

PHPz
PHPznach vorne
2023-05-29 12:01:261448Durchsuche
      ...

    Die prägnante Frage lautet wie folgt:

    Es gibt ein INT-Feld a, der Standardwert ist 0 und die vom Programm übergebene Beurteilungsbedingung ist a = 'abacd'.

    Die Eingabe ist eine Zeichenfolge und alle Daten mit a=0 werden zurückgegeben.

    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

    Der durch diesen Code beurteilte tatsächliche Zustand ist a = 0.

    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.

    Erweiterung des Problems

    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.

    Zusammenfassung der Missverständnisse bei der MySQL-Beurteilung des Werts 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!

    Stellungnahme:
    Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen