Resuelve el problema de que la expresión condicional de la función count() de mysql no tiene efecto

ejemplo

datos de la tabla
inserte la descripción de la imagen aquí

Error de estadísticas sql

select count(age = 10) as count from student

resultado de búsqueda
inserte la descripción de la imagen aquí

razón

count('cualquier contenido') contará todos los registros, porque count no cuenta solo cuando encuentra nulo, es decir, count(null)==0

resolver

Método 1: Agregar la expresión condicional en la función de conteo()or null

select count(age = 10 or null) as count from student

Método 2: usando IF()una función, el valor de la expresión es NULL cuando no se cumple la condición

select count(IF(age = 10,1,null)) as count from student

Método 3: use case whenuna expresión, el valor de la expresión es NULL cuando no se cumple la condición

select count(case when age = 10 then 1 else null end) as count from student

Supongo que te gusta

Origin blog.csdn.net/weixin_52116015/article/details/131638350
Recomendado
Clasificación