Mysql NOT语句中的合并函数不工作

Mysql NOT语句中的合并函数不工作,mysql,Mysql,查询不返回任何内容,但COALESCE不返回0。我相信这与NOT声明有关 我做了这个测试: SELECT COALESCE(UNIX_TIMESTAMP(expires_at), 0) FROM main_db.`device` WHERE main_db.`device`.`device_id` ='6' and NOT main_db.device.device_type = 'mac'; 它返回0 您需要将其放入子查询中 SELECT COALESCE(NULL, 0) FROM mai

查询不返回任何内容,但COALESCE不返回0。我相信这与NOT声明有关

我做了这个测试:

SELECT COALESCE(UNIX_TIMESTAMP(expires_at), 0) FROM main_db.`device` WHERE main_db.`device`.`device_id` ='6' and NOT main_db.device.device_type = 'mac';

它返回0

您需要将其放入
子查询中

SELECT COALESCE(NULL, 0) FROM main_db.`device` WHERE main_db.`device`.`device_id` ='6'

您需要将其放入
子查询

SELECT COALESCE(NULL, 0) FROM main_db.`device` WHERE main_db.`device`.`device_id` ='6'

使用
SELECT*FROM main_db.`device`WHERE main_db.`device`.`device_id`='6'而不是main_db.device.device_type='mac'是否得到任何结果?我猜您得到的是0行,但希望只有一行
0
COALESCE
仅在您有行要返回时才适用,如果没有行,则不会创建行。欢迎使用具有预期输出的输入示例“正常工作”的查询具有不同的where子句!使用
SELECT*FROM main_db.`device`WHERE main_db.`device`.`device_id`='6'而不是main_db.device.device_type='mac'是否得到任何结果?我猜您得到的是0行,但希望只有一行
0
COALESCE
仅在您有行要返回时才适用,如果没有行,则不会创建行。欢迎使用具有预期输出的输入示例“正常工作”的查询具有不同的where子句!这是因为
COALESCE
对一行进行操作。但由于您的查询没有任何结果,因此没有任何操作。@FerdyPruis,试试这个@Cid,完全不同,我的答案是
选择合并(子查询,0)
@ᴇᴛᴀʟ啊,是的,这是因为
COALESCE
对一行进行操作。但由于您的查询没有任何结果,因此没有任何操作。@FerdyPruis,试试这个@Cid,完全不同,我的答案是
选择合并(子查询,0)
@ᴇᴛᴀ啊,是的,没错