2012-03-30 28 views
6

neden select 'aaa' =0 dönüş 1 (DOĞRU) Ben sorgulamak eğer MySQL dize dönüştürme return 0

userid | pass 

user1 | pas1 

gibi bir tablo:

select from table where userid = 0 and pass =0 

bana tüm satırları verir?

MySQL 'aaa' = 0 görür ve kendisine düşünür

cevap

10

: "Ben bir dizeye bir tamsayı veya 0 olarak aaa dönüştürebilir ya"

Tahmin edelim hangisi? 'Aaa' bir tam sayıya dönüştüren edildiğini

Temelde ne oluyor, ve geçerli bir tamsayı değil gibi, bu 0.

0 = 0 elbette doğrudur (veya true == 1) 'dir atmalarını .

Değerler/veri türlerini bilmeden, aynı şey sizin userid sütununuzda gerçekleştiğinden şüpheleniyorum, söylemek zor.

http://dev.mysql.com/doc/refman/5.0/en/type-conversion.html

+0

çok güzel –

+0

beni alt açıkladı :) –