首页 > 解决方案 > MySQL:使用 Coalesce 选择仍然返回 null

问题描述

我对 COALESCE 的理解是它返回第一个非空值。我在下面的 select 语句中使用了 COALESCE,但它仍然返回 null。我该如何解决它或有更好的方法?

SET NEW.random = ( SELECT coalesce(animals) FROM list ORDER BY RAND() LIMIT 1 );

数据库小提琴:https ://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=aca780246b24ec4cce8d9978c1113d26

标签: mysqlcoalesce

解决方案


看来您对该COALESCE功能有误解!使用此函数时,您可以使用多个列作为参数,例如COALESCE(col1, col2, col3). 如果使用多个列作为参数,它会返回第一个非空值。要了解,请参阅SQL Here

更多细节在这里

根据您的评论,我认为您正在寻找这个:

SELECT animals from list where animals is not null ORDER BY RAND() LIMIT 1

推荐阅读