2017-03-24 8 views
0

私は2つのmysqlクエリを持っています。Mysql列= 1と "1_"のような列は同じですか?

SELECT tanulok.nev, tanulok.osztaly, leadasok.idopont, leadasok.mennyiseg 
FROM `leadasok`, tanulok 
WHERE tanulok.tazon = leadasok.tanulo and osztaly LIKE "1_" 

SELECT tanulok.nev, tanulok.osztaly, leadasok.idopont, leadasok.mennyiseg 
FROM `leadasok`, tanulok 
WHERE tanulok.tazon = leadasok.tanulo and osztaly = 1 

これらは同じ結果を与える。どうして?

の列= 1と "1_"のような列は同じですか?

osztaly列の値は、文字列と数値の比較を行うためのMySQLの「1A」、「1B」、「2A」...

+1

[Mysql Like + Wild CardとEqualsオペレータ]の可能な複製(http://stackoverflow.com/questions/4609073/mysql-like-wild-card-vs-equals-operator) –

答えて

0

ある - DBエンジンは、数に文字列を変換します。それは文字列の左側から始まり、すべての数字文字を取り、数字を作ります。

"1A"  -> 1 
"300miles" -> 300 
"$3"  -> 0 (because the string does NOT start with a number) 

そのため、2番目のクエリでも結果が返されます。

関連する問題