我有两个mysql查询。
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列的值是“1A”,“1B”,“2A”......
答案 0 :(得分:0)
因为在MySQL中进行字符串和数字的比较 - 数据库引擎将字符串转换为数字。它从字符串的左侧开始,接受所有数字字符并从中构建一个数字。
"1A" -> 1
"300miles" -> 300
"$3" -> 0 (because the string does NOT start with a number)
这就是为什么第二个查询也会返回结果。