我有一個表設置了5列:MySQL的min()和MAX()的查詢陣列呼應零
USER_ID,5K,10K,半程馬拉松,和馬拉松。
我想在每個運行距離的用戶頁面上顯示用戶的最佳時間。用戶將能夠更新任何創建新行的時間,其餘列設置爲空。因此,例如,
行1:
USER_ID:5,5K:空,10K:45:00,一半:空,馬拉松:空。
然後用戶運行其他10K,並得到一個更好的時間,再加上要更新自己的5K時間:
行2則是:
USER_ID:5,5K:15:53 ,10k:40:40,一半:null,馬拉松:零。
當我運行下面的SQL查詢
$query = "SELECT MIN(5k), MIN(10k), MIN(halfmartahon), MIN(marathon)
FROM Times
WHERE user_id = ".$userID."
GROUP BY user_id";
$db->query($query);
//Assign Result Set
$user_benchmarks = $db->single();`
我得到一個數組,它是正確的,當我vardump()
(我存儲在幾秒鐘時間):
對象(stdClass的) #18(4){[「MIN(5k)」] => string(3)「953」[「MIN(10k)」] => string(4)「2440」[「MIN(halfmarathon)」] => string(1)「0」[「MIN(marathon)」] => string(1)「0」}
但是,當我試圖回顯這個,所以$user_benchmarks->5k
它不顯示任何東西,當我運行print_r($user_benchmarks->5k)
它回來作爲NULL
。
有沒有人遇到這個/知道發生了什麼?我也嘗試在打印之前將字符串轉換爲整數 - 無效 - 仍然得到NULL
。
屬性'5k',不應該是'MIN(5k)'? – frz3993
規範你的模式。數據庫表不是電子表格! – Strawberry
有沒有什麼理由爲什麼你的表不像'user_id','race_type','time'?這可能會爲您節省大量空值,並使查詢更加直觀。你的問題也會變得更容易回答。 – apokryfos