perché select 'aaa' =0
ritorno 1 (VERO) se ho una tabella comemysql conversione stringa di ritorno 0
userid | pass
user1 | pas1
se interrogo:
select from table where userid = 0 and pass =0
mi dà tutte le righe?
perché select 'aaa' =0
ritorno 1 (VERO) se ho una tabella comemysql conversione stringa di ritorno 0
userid | pass
user1 | pas1
se interrogo:
select from table where userid = 0 and pass =0
mi dà tutte le righe?
MySQL vede 'aaa' = 0 e pensa a se stesso: "Sono in grado di convertire sia AAA ad un numero intero, o 0 per una stringa"
Indovina qual è?
In sostanza quello che sta succedendo è che 'aaa' si sta convertendo in un intero, e come non è un intero valido, si getta a 0.
0 = 0 è certamente vero (o true == 1) .
Sospetto che lo stesso stia accadendo con la colonna userid, anche se senza conoscere i suoi valori/tipo di dati, è difficile dirlo.
molto ben spiegato –
mi ha battuto ad esso :) –