Heim > Datenbank > MySQL-Tutorial > Hauptteil

So lösen Sie die Falle des Nullwerturteils in MySQL

PHPz
Freigeben: 2023-05-29 12:01:26
nach vorne
1387 Leute haben es durchsucht
      ...

    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!

    Verwandte Etiketten:
    Quelle:yisu.com
    Erklärung dieser Website
    Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
    Beliebte Tutorials
    Mehr>
    Neueste Downloads
    Mehr>
    Web-Effekte
    Quellcode der Website
    Website-Materialien
    Frontend-Vorlage