Mysql column = 1和像“1_”这样的列是等价的吗?

时间:2017-03-24 10:24:46

标签: mysql

我有两个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”......

1 个答案:

答案 0 :(得分:0)

因为在MySQL中进行字符串和数字的比较 - 数据库引擎将字符串转换为数字。它从字符串的左侧开始,接受所有数字字符并从中构建一个数字。

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

这就是为什么第二个查询也会返回结果。