我正在使用此查詢返回存儲在$ sTable中的歌曲列表以及存儲在$ sTable2中的總項目的COUNT。如何在MySQL中使用COUNT時返回0而不是null
/*
* SQL queries
* Get data to display
*/
$sQuery = "
SELECT SQL_CALC_FOUND_ROWS ".str_replace(" , ", " ", implode(", ", $aColumns))."
FROM $sTable b
LEFT JOIN (
SELECT COUNT(*) AS projects_count, a.songs_id
FROM $sTable2 a
GROUP BY a.songs_id
) bb ON bb.songs_id = b.songsID
$sWhere
$sOrder
$sLimit
";
$rResult = mysql_query($sQuery, $gaSql['link']) or die(mysql_error());
「projects_count」在「$穩定」被放入一個數組與列一起,這然後通過JSON吐出來和頁面上顯示在表中。
這是工作完全從一首歌沒有任何項目鏈接到它。它當然返回NULL。
我希望所有的空值都返回爲'0'。
我已經試過了COUNT(),COUNT(IFNULL(PROJECT_ID,0),並使用COUNT(DISTINCT)...
並且: -
SELECT COALESCE(COUNT(*),0) AS projects_count, a.songs_id
均無功而返
。任何想法?
感謝所有已經回答的人,但是沒有任何建議似乎給了我任何非null的東西,包括使用COALESCE。然而,這說,COALESCE對我來說是新的,我不確定在將它與COUNT(*)結合使用時適當的語法。如果你或許可以用我的代碼示例詳細說明,我將非常感激,因爲我的嘗試似乎仍然導致'null'。謝謝! – gordyr
試試看我的編輯是否有效。 – Crontab
可悲的是,它仍然沒有,儘管我很欣賞這種努力。儘管我討厭我可能不得不暫時放置一個jquery hack來替換null值直到找到解決方案。 :-( – gordyr