2014-09-27 92 views
-4

我的查詢是

$result=SELECT MAX(surveyID) as surveyID FROM `sg_count`WHERE userID=$user 

其中sg_count表中沒有記錄

mysql_num_rows($result)返回1

+1

添加錯誤文件(S)的頂部報告;:當您選擇記錄它會產生一個行ini_set('display_errors',1);'看看它是否產生任何東西。還有'或者(mysql_error())'去''mysql_query()'。你在查詢,對嗎?我看到的只是一行代碼。 – 2014-09-27 05:29:37

+0

不客氣。你有沒有發現問題? – 2014-09-27 05:31:49

+0

發佈導致報告問題的語法有效代碼。這是*不是*正在嘗試什麼。 – user2864740 2014-09-27 05:32:56

回答

3

彙總功能,如maxcount返回一行(沒有分組子句),這就是它們的本質。

舉例來說,count(*)在空表會給你一個一行與價值0

我懷疑,雖然我還沒有嘗試過,但您會在查詢中獲得一行,並且其值爲NULL。這就是我用過的所有其他數據庫處理它的方式。假設該列是非NULL指定的,您可以使用該返回值來檢測「無行」的情況。即使它允許NULL,這仍然是可行的,這取決於你想在這種情況下做什麼。

否則,你可能會更好過檢查計數以及與喜歡的東西:

select count(*) as quant, 
     max(surveyID) as surveyID 
from  sg_count 
where userID = 'somebody' 

然後,如果quant是零,你知道有沒有行。如果它不爲零,那麼行,最大值surveyID在另一列中。

+0

查詢沒有失敗,所以OP想要做什麼,是任何人的猜測。但這是正確的。 – 2014-09-27 05:36:59

2

是的,這是相當真實的。 ?您開`

+----------+ 
| surveyID | 
+----------+ 
| NULL  | 
+----------+ 

$count = $query->num_rows; // 1 
$results = $query->fetch_assoc(); 
echo $results['surveyID']; // NULL