具有多个中间值的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`