我在與下面的查詢問題:SQL數限制的結果
SELECT
badge.name AS badge_name, badge.description, badge.type, badges.time, user.name AS user_name
FROM
badges LEFT JOIN badge ON badges.badge_name = badge.name LEFT JOIN user ON user.id=badges.user_id
WHERE
user.name IS NOT NULL
ORDER BY badges.time DESC
LIMIT 5
現在,我想檢查的結果的數量不爲0,所以我檢查就像我總是這樣通過在SELECT
:count(1) AS counter
之後加上。但是,這會影響結果。
我已經看到了,這可能是一個問題,因爲也有LIMIT
,但什麼是規避這個最有效的方法是什麼?我只是想檢查是否有任何結果返回或不顯示正確的消息,它沒有結果。我使用的是PDO
,但由於它是SELECT
我不能使用->rowCount()
來檢查返回的行數。
編輯:
我想,以確定是否有任何結果,是或否。我正常這樣做是利用count(1) AS counter
,並檢查計數器的值如下方式:
while($row['counter'] = $STH->fetch()){
if($row['counter'] == 0){
// Error message
}else{
echo $row['badge_name'] . "etc...";
}
}
然而,這似乎亂了,結果由於LIMIT
(檢查SQLFiddles)。
因此:如何檢查此問題,最好在單個查詢中進行檢查?
我建議你解釋你正在做什麼。基於我能理解的是你想獲得結果集,但同時你需要一些方法來確定是否沒有行被返回。如果它返回一個集合,我會猜測你肯定可以詢問這個集合,但我不是一個PHP的人。我建議你重寫你的需求,這樣人們可以更好地理解。 –
@RobertCo我編輯了我的答案來澄清我自己。 – jdepypere