0

这是我的代码

SELECT
IF(or_opp.has_something = 1, metric.a, NULL) as a,
IF(or_opp.has_something = 1, metric.b, NULL) as b,
IF(or_opp.has_something = 1, metric.c, NULL) as c,
IF(or_opp.has_something = 1, metric.d, NULL) as d,

有没有办法写这个所以我只需要检查or_opp.has_something一次吗?

编辑:(出于性能原因)

4

2 回答 2

0

也许只是做

SELECT
or_opp.has_something as test,
metric.a as a,
metric.b as b,
metric.c as c,
metric.d as d,

然后在您的脚本语言(我想是 PHP)中,在获取行时:

if ($row['test'] != 1)
{
  // consider that a, b, c, d are NULL
}
于 2012-11-12T16:28:17.350 回答
0

我是否错过了理解问题,或者您不能将其放在 WHERE 子句中并在您的 SELECT 中打印 a、b、c、d 吗?

也许发布整个查询。

于 2012-11-12T17:05:18.707 回答