具有多个中间值的MySQL查询始终为空
也许我忽略了这里显而易见的问题,但是为什么这个查询总是空的具有多个中间值的MySQL查询始终为空,mysql,between,Mysql,Between,也许我忽略了这里显而易见的问题,但是为什么这个查询总是空的 SELECT ROUND(AVG(`viewer_count`),0) AS avg_viewer FROM `table` WHERE (id BETWEEN 1 AND 8) AND (id BETWEEN 26 AND 32) 难道不可能得到这样多个范围的平均值吗 由于id不可能介于1和8之间,同时也不可能介于26和32之间,因此查询返回NULL,因为没有匹配的行。如果您按照squemeamish在评论中的建议使用或,您
SELECT ROUND(AVG(`viewer_count`),0) AS avg_viewer FROM `table`
WHERE
(id BETWEEN 1 AND 8)
AND
(id BETWEEN 26 AND 32)
难道不可能得到这样多个范围的平均值吗 由于
id
不可能介于1和8之间,同时也不可能介于26和32之间,因此查询返回NULL,因为没有匹配的行。如果您按照squemeamish在评论中的建议使用或,您将得到这两个范围的平均值。因为id
不可能介于1和8之间,同时也不可能介于26和32之间,查询将返回NULL,因为没有匹配的行。如果您按照squemeamish在评论中的建议使用或
,您将得到这两个范围的平均值。一个数字怎么可能介于1和8之间以及26和32之间?这在逻辑上是不可能的,伙计。一个数字怎么可能在1到8之间,26到32之间?这在逻辑上是不可能的,伙计。
SELECT ROUND(AVG(CASE WHEN id BETWEEN 1 AND 8 THEN `viewer_count` END),0) AS avg_viewer1_8
, ROUND(AVG(CASE WHEN id BETWEEN 26 AND 32 THEN `viewer_count` END),0) AS avg_viewer26_32
FROM `table`