首页 > 解决方案 > 如何通过查询从sql组中获取某些值,其中数据为空

问题描述

最初我在名为comments的数据库中有一个空表。这里没有给出行输入。它有 4 列,其中 3 个外键。我这样写了一个查询-

SELECT COUNT(*)
FROM `comments` 
GROUP BY posts_id

它什么也不返回,因为表完全是空的。但我必须通过此查询至少需要0才能确认表为空,或者如果它有值则返回我的值。或任何其他检查表是否为 null 的选项,它没有行。

(目前我正在 mysql 中测试查询。稍后,我将在 Laravel 查询构建器中转换它并在 laravel 应用程序中使用它)

标签: mysqlsqlgroup-bycount

解决方案


与表为空UNION ALL时返回的查询一起使用:0

SELECT COUNT(*)
FROM `comments` 
GROUP BY posts_id
UNION ALL
SELECT 0 FROM dual
WHERE NOT EXISTS (SELECT 1 FROM `comments`)

如果您使用的是 MySql 8.0+,则可以省略FROM dual.


推荐阅读