【发布时间】:2011-04-22 03:19:35
【问题描述】:
我有一个任务是从名为 food 的 mysql 表中获取两行数据。
现在,我有一个 carbon_footprint 列,其中包含所有食物的碳足迹。我现在必须从 mysql 表中随机选择两行,但有一个条件。
这两个值的碳足迹百分比差异应大于等于 70%。
我现在能做的最好的就是:
Select a.* from foods a CROSS JOIN foods b on ((a.co2 - b.co2)/b.co2) >= 0.7 ORDER BY RAND() LIMIT 2
但不知何故,我没有得到正确的答案。我知道我错过了一些非常愚蠢的东西。
请帮忙!
【问题讨论】:
-
您将
a中的食物与b中的食物进行比较,但未返回来自b的任何结果。换句话说,您想选择一种a食物和一种b食物来获得它们之间正确的70% 差异。 -
你没有得到正确答案,那么你得到了什么答案?
-
Try...SELECT * FROM foods a, foods b WHERE ((a.co2 - b.co2)/b.co2) >= 0.7 ORDER BY RAND() LIMIT 2
-
@user559142 - 考虑将其发布为答案
-
@user559142,甚至
... not between 0.7 and 1/0.7。而且您只需要limit 1,因为两条记录都在一行中返回。