我正在尝试检索列的非空元素数。 例如,如果你有这样的东西:
并且您想检索应该检索的column_name_1的非空元素的数量1.对于column_name_2,您应该检索2,对于column_name_3,您应该检索0。
我在MySQL数据库中使用此查询:
SELECT
COUNT(*)
FROM
my_table
WHERE column_name_1 IS NOT NULL
AND [ others conditions ]
但是,您必须为每个列运行此查询,并且对于很多元素(不是所有这些元素),我遇到了一些性能问题。您知道如何更改此查询以提高性能吗?
答案 0 :(得分:0)
你可以使用mysql的IF
SELECT
SUM(IF(col1 IS NULL,1,0)) as Col1,
SUM(IF(col2 IS NULL,1,0)) as Col2,
SUM(IF(col3 IS NULL,1,0)) as Col3
FROM my_table
WHERE [conditions]
这样就可以将IS NULL条件从选择位置移到