ich Mysql verwende ich ein Feld haben, die Art varchar(50)
und Name ist email
ist und wenn ich eine Abfrage wie folgt auszuführen:Wo Feld = 0 gibt alle Datensätze
SELECT * FROM `users` WHERE email =0
Es gibt alle Datensätze auf dem Tisch . Wie ist das möglich?
Beispiel:
Aufzeichnungen einer von ihnen: [email protected]
und diese Abfrage gibt auch diese Zeile.
Warum passiert das und wie vermeidet man diese Situation?
Was versuchen Sie mit diesem Test zu erreichen. Wenn Sie 'NULL's filtern wollen, müssen Sie' IS NULL' schreiben ... –
Nein, ich habe diese Abfrage in der Liste der langsamen Abfragen gesehen. –
Wenn Sie eine E-Mail mit varchar haben, vergleichen Sie sie mit Anführungszeichen wie 'email = '0'' oder' email =' ''... vergleicht sie mit einer Nummer, versucht sie wahrscheinlich alle Ihre E-Mails in Zahlen umzuwandeln und zu vergleichen mit Null, die eine beliebige Zeichenfolge gibt eine 1 zurück, die wahr ist –