今天用mysql搜索的时候,出现了一个问题。
SELECT s.m_id,v.id FROM store s
LEFT JOIN video v ON v.id = s.m_id
WHERE v.id IS NOT NULL
出来的结果是:
这完全不是我想要的结果。后来发现m_id字段是varchar类型的,转换成int类型后就和id相等。那么可能是类型不相等的,mysql会自动转换成相等的类型,在进行判断。
用下面的测试sql试下
SELECT 1 = '1abc' ;/* TRUE */
SELECT 1 = '12abc' ;/* FALSE */
SELECT '1' = '1abc' /* FALSE */
所以要注意: mysql中用等号,要确保等号左右的数据类型一样,否则会出现意料之外的错误。