Php 案例在mysql查询中未按预期工作

Php 案例在mysql查询中未按预期工作,php,mysql,sql,Php,Mysql,Sql,我使用下面的带有case语句的查询-- 在其中,当查询返回一行时,我在ID中得到1,但当查询不返回任何内容时,则不返回0。为什么会这样 我需要的是,当查询返回一行时,它应该返回1,如果没有显示结果,那么它应该返回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.

我使用下面的带有case语句的查询--

在其中,当查询返回一行时,我在ID中得到1,但当查询不返回任何内容时,则不返回0。为什么会这样


我需要的是,当查询返回一行时,它应该返回1,如果没有显示结果,那么它应该返回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处理。看到了吗

我想你必须使用
,而不是
=否即使检查此项,结果也相同啊!现在我看到问题了,对不起。这不是它的工作原理。您应该检查在查询之后是否返回了值。对于id 23,我的查询不返回任何内容,即没有值,在这种情况下,我希望它返回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;