我有一个SELECT查询只返回一个值(不是一行,而只是一个“东西”)。它看起来像
SELECT IF( EXISTS( SELECT * FROM `Blah` WHERE <whatever> ), 1, 0);
我尝试摆弄mysqli_result::fetch_assoc
,mysqli_result::fetch_object
和mysqli_result::fetch_array
,而且所有这些都非常奇怪。是否有mysqli_result::fetch_string
这样的特殊情况只输出一个我可以调用intval
的字符串?
答案 0 :(得分:3)
你可以这样做:
SELECT IF( EXISTS( SELECT * FROM `Blah` WHERE <whatever> ), 1, 0) AS exists;
并使用上述任何功能获取行号0&#39; s&#39;存在&#39;柱。
答案 1 :(得分:3)
以及casraf的回答,另一种选择可能是将计数纳入其中 - 你可能想知道以后有多少blah符合你的标准。当您在几年内重新访问代码时,可能会更容易回读。
SELECT count(*) cnt FROM `Blah` WHERE <whatever>
您可以对&#34; cnt&#34;进行布尔检查。变量(即0的计数= = false),但也用它来找出你有多少匹配。