SQL 查询 BETWEEN 结果不正确

时间:2021-01-27 17:07:20

标签: mysql sql

我有一个创业公司的数据库,每个创业公司都有一个 total_funding 字段。我需要能够在 total_funding 范围内搜索启动,例如,我正在运行这些查询

 SELECT COUNT(*) AS total 
  FROM organization 
 WHERE 1 
   AND (organization.total_funding_usd BETWEEN 0 AND 1000000) 
 total : 931728

 SELECT COUNT(*) AS total 
  FROM organization 
 WHERE 1 
   AND (organization.total_funding_usd BETWEEN 1000000 AND 5000000) 
 total : 32415

SELECT COUNT(*) AS total 
  FROM organization 
 WHERE 1 
   AND (organization.total_funding_usd BETWEEN 0 AND 5000000) 
 total : 957721

问题是,如果我将前两个查询的结果相加,我得到 931728 + 32415 = 964 143 这不等于等于 961 974 的第三个查询的结果

有谁知道为什么我错过了 2169 家初创公司?

1 个答案:

答案 0 :(得分:2)

之间包括终点。我怀疑你想要:

WHERE organization.total_funding_usd >= 0 AND
      organization.total_funding_usd < 1000000

WHERE organization.total_funding_usd >= 1000000 AND
      organization.total_funding_usd < 5000000

WHERE organization.total_funding_usd >= 0 AND
      organization.total_funding_usd < 5000000

换句话说,总资金为 1000000 的组织被计算两次。