mysql - SQL 查询不显示空值

标签 mysql null

我已经成功破解了一个 SQL 查询,它一直在工作,直到我意识到数据库中的一些成员具有空名称,因为我们使用的插件删除了非 ascii 名称。我在我的页面上显示这些统计数据,让没有名字的人工作不太好。我知道如何在使用 WHERE 子句时不显示 NULL,但我不太确定何时不使用 WHERE 子句。

到目前为止我有什么-

SELECT player_stats.player_name, COUNT(player_kill.killer) 
FROM player_stats 
LEFT JOIN player_kill ON player_stats.player_id = player_kill.killer  
GROUP BY player_stats.player_name 
HAVING COUNT(player_kill.killer) > 1 
ORDER BY COUNT(player_kill.killer) DESC;

最佳答案

WHERE 子句位于所有 JOIN 子句和 GROUP BY 之间。如果 WHERE player_name IS NOT NULL 不起作用,则名称可能是空字符串,而不是 NULL,因此您也需要检查一下。

SELECT s.player_name, COUNT(*) AS count
FROM player_stats AS s
INNER JOIN player_kill AS k ON s.player_id = k.killer  
WHERE s.player_name IS NOT NULL AND s.player_name != ''
GROUP BY s.player_name 
ORDER BY count DESC;

此外,如果您不想获得 0 个计数,请使用 INNER JOIN 而不是 LEFT JOIN

关于mysql - SQL 查询不显示空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41599986/

相关文章:

python - 如何在 Amazon Web Services EC2 实例上安装 MySQL-python?

mysql - 如何根据类型和 2 列获取最高值的记录

Java - 空指针异常错误

c# - 什么是NullReferenceException,如何解决?

php - 从 jQuery .ajax() 在 PHP 中获取 JSON

c# - NullReferenceException 未处理,对象引用未设置为对象的实例

java - SQL异常 : executeQuery method can not be used for update

mysql - 用 SELECT 插入

mysql - 根据两个表中的数据选择行

swift - 找不到 fatal error : unexpectedly found nil while unwrapping an Optional value