案例在mysql查询中无法正常工作

时间:2011-05-09 05:45:59

标签: php mysql sql

我正在使用带有case语句的对开查询 -

SELECT case WHEN t1.abc !='' THEN 1 ELSE 0 END as ids FROM
 table1 AS t1 LEFT JOIN table2 as t2
 ON t1.pid = t2.id
 WHERE t2.idr IS NULL and t1.idr=23

当我在查询返回一行时获得1个id,但当查询返回任何内容时,则不返回0。为什么会这样?

我需要的是当查询返回一行时它应该返回1并且如果没有显示结果那么它应该返回0.我在哪里错了?

1 个答案:

答案 0 :(得分:0)

如果您只关心如何获得1或0.请尝试下面的示例查询

SELECT CASE WHEN COUNT(*) > 0 THEN 1 ELSE 0 END ids
    FROM table1 t1 INNER JOIN table2 t2 ON t1.pid = t2.id
    WHERE t2.idr IS NULL
    AND t1.idr = 123;

在你的情况下,你现在排的时候没有得到0的原因。这是因为没有什么可比的。嗯这只是猜测,但这就是我的想法。

作为替代方案,如果结果不返回任何行,则让php处理。见here