2012-03-30 65 views
6

爲什麼select 'aaa' =0返回1(TRUE) 如果我有像MySQL的字符串轉換回0

userid | pass 

user1 | pas1 

一個表,如果我查詢:

select from table where userid = 0 and pass =0 

它給了我所有行?

回答

10

的MySQL看到 'AAA'= 0,認爲本身:

「我可以AAA轉換爲整數,或者0到字符串。」

猜猜它與哪一個?

基本上發生的事情是,「AAA」被轉換爲整數,並且因爲它不是一個有效的整數,它轉換爲0

0 = 0當然是真實的(或真實== 1) 。

我懷疑你的userid列也是如此,儘管不知道它的值/數據類型,但很難說。

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

+0

很好解釋 – 2012-03-30 18:24:13

+0

打我吧:) – 2012-03-30 18:24:38

相關問題