MySQL:Select Coalesce 仍然返回 null
MySQL: Select with Coalesce still returning null
我对 COALESCE 的理解是它 returns 第一个非空值。我在下面的 select 语句中使用了 COALESCE,但它仍然返回 null。我该如何修复它或者有更好的方法吗?
SET NEW.random = ( SELECT 合并(动物)
FROM列表
按 RAND() 排序 (LIMIT 1);
DB Fiddle: https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=aca780246b24ec4cce8d9978c1113d26
看来你对COALESCE
函数的理解有误!在使用此函数时,您可以使用多个列作为参数,如 COALESCE(col1, col2, col3)
。它 returns 在使用多个列作为参数的情况下的第一个非空值。了解请看SQL Here
根据您的评论,我认为您正在寻找这个:
SELECT animals from list where animals is not null ORDER BY RAND() LIMIT 1
你不需要COALESCE()
。
只需从 table list
:
中过滤掉 NULL
SET NEW.random = ( SELECT animals
FROM list
WHERE animals IS NOT NULL
ORDER BY RAND() LIMIT 1 );
在您的 fiddle 中查看结果。
我对 COALESCE 的理解是它 returns 第一个非空值。我在下面的 select 语句中使用了 COALESCE,但它仍然返回 null。我该如何修复它或者有更好的方法吗?
SET NEW.random = ( SELECT 合并(动物) FROM列表 按 RAND() 排序 (LIMIT 1);
DB Fiddle: https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=aca780246b24ec4cce8d9978c1113d26
看来你对COALESCE
函数的理解有误!在使用此函数时,您可以使用多个列作为参数,如 COALESCE(col1, col2, col3)
。它 returns 在使用多个列作为参数的情况下的第一个非空值。了解请看SQL Here
根据您的评论,我认为您正在寻找这个:
SELECT animals from list where animals is not null ORDER BY RAND() LIMIT 1
你不需要COALESCE()
。
只需从 table list
:
NULL
SET NEW.random = ( SELECT animals
FROM list
WHERE animals IS NOT NULL
ORDER BY RAND() LIMIT 1 );
在您的 fiddle 中查看结果。