我有以下两个问题:
select count * form a where temp>str group by x,y
select count * form a where temp<=str group by x,y
这导致对表进行两次解析。由于表的大小是 100 个演出,我在想是否可以将其减少为单个查询。
最佳答案
select sum(IF(temp>'str',1,0)) as GREATER,
sum(IF(temp<'str',1,0)) as LESSER
from a
group by x,y
这将返回包含两个字段 GREATER 和 LESSER 的单行,这两个字段分别包含大于和小于字符串的行数计数。
IF(temp>'str',1,0)) 如果大于则返回 1,否则返回 0。将这些值相加将给出更大的 rwos 的总数。
IF(temp<'str',1,0)) 如果较小则返回 1,否则返回 0。将这些值相加将得出较小的 rwos 总数。
关于mysql - 将大于和小于的 SQL 查询合并为一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20517998/