所以我使用了以下內容:MySQL查詢問題,笨
$r = new Record();
$r->select('ip, count(*) as ipcount');
$r->group_by('ip');
$r->order_by('ipcount', 'desc');
$r->limit(5);
$r->get();
foreach($r->all as $record)
{
echo($record->ip." ");
echo($record->ipcount." <br />");
}
標準:
SELECT `ip`, count(*) as ipcount FROM (`soapi`) GROUP BY `ip` ORDER BY `ipcount` desc LIMIT 5;
,我只得到了最後(第五)記錄echo'ed並沒有ipcount
呼應。
有沒有不同的方法來解決這個問題?我正在學習DataMapper(因此提出問題)並需要弄清楚一些。我並沒有把我的頭圍繞整個ORM的東西。
有沒有辦法設置count(*) as ipcount
沒有有趣的select()
聲明?我不認爲這是由於某種原因觸發的。這也可能是DataMapper中的一個錯誤,但我不太確定。
而且我發現,即使我用$r->query()
方法不除最後一項,如果我使用類似SELECT
IP FROM
soapi WHERE 1;
返回任何東西。但是,如果我說SELECT * FROM soapi WHERE 1;
,它將返回所有內容(如它應該)。如果它沒有*
它只會返回最後一行。
剛剛通過新查詢進行驗證,除選擇所有列(*
)之外的任何內容僅返回最後一條記錄。任何幫助,這將是偉大的。您可以編寫一個類似select *, count(*) as ipcount
的聲明,但您仍然無法通過$record->ipcount
訪問該聲明。
你怎麼知道這是它的第五個記錄?您能否以標準SQL格式發佈您的查詢? – 2010-04-29 03:16:19
添加了標準格式,我知道這是第五種,因爲如果我通過輸出運行標準查詢,則與查詢結果的最後一項相同。 – 2010-04-29 03:22:48