Heim  >  Artikel  >  Datenbank  >  So vermeiden Sie fehlerhafte Übereinstimmungen in MySQL-Abfragen, indem Sie die numerische Konvertierung verhindern

So vermeiden Sie fehlerhafte Übereinstimmungen in MySQL-Abfragen, indem Sie die numerische Konvertierung verhindern

DDD
DDDOriginal
2024-10-24 08:50:30190Durchsuche

How to Avoid Mistaken Matches in MySQL Queries by Preventing Numeric Conversion

Die numerische Konvertierung in MySQL-Abfragen verstehen

In MySQL gibt eine Abfrage wie SELECT * FROM table WHERE email=0 unerwartet alle Zeilen zurück, obwohl „0“ fehlt ' Werte im E-Mail-Feld der Tabelle. Dies liegt daran, dass das E-Mail-Feld, normalerweise ein Varchar-Typ, automatisch in eine Ganzzahl konvertiert wird.

Da Varchar-Felder nicht-stellige Zeichen aufnehmen können, wird jede E-Mail-Zeichenfolge, die keine gültige Ganzzahldarstellung hat, standardmäßig auf 0 gesetzt. Diese Konvertierung kann zu falschen Übereinstimmungen und potenziellen Sicherheitslücken führen.

Um dieses Problem zu vermeiden, ohne die Abfrage zu ändern, muss unbedingt sichergestellt werden, dass Zeichenfolgenfelder nur mit Zeichenfolgenwerten verglichen werden. Das richtige Abfrageformat für solche Vergleiche wäre:

<code class="sql">SELECT * FROM table WHERE email='0';</code>

Durch das Einschließen des Vergleichswerts in einfache Anführungszeichen (' ') bleibt das E-Mail-Feld eine Zeichenfolge, wodurch eine numerische Konvertierung verhindert und eine genaue Übereinstimmung sichergestellt wird.

Das obige ist der detaillierte Inhalt vonSo vermeiden Sie fehlerhafte Übereinstimmungen in MySQL-Abfragen, indem Sie die numerische Konvertierung verhindern. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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