在我的 mySQL 数据库上进行一些查询时,我遇到了一些我无法解释的事情:
SELECT
if(LENGTH(partner_id) > 38, SUBSTRING(partner_id FROM 8), 0) as sub_id
from people
Where
if(LENGTH(partner_id) > 38, SUBSTRING(partner_id FROM 8), 0) != 0
到目前为止没什么特别的,我只想显示一些partner_ids的一部分。但是,如果我执行相同的语句略有不同(将 0 与空字符串 '' 交换):
SELECT
if(LENGTH(partner_id) > 38, SUBSTRING(partner_id FROM 8), '') as sub_id
from people
Where
if(LENGTH(partner_id) > 38, SUBSTRING(partner_id FROM 8), '') != ''
我得到更多的结果。唯一的区别:我在else 语句中放了一个空字符串并比较空字符串。这是 SUBSTRING 函数的一些奇怪行为吗?还是我只见树木不见森林?