이 쿼리를 사용하여 $ sTable에 저장된 노래의 목록과 $ sTable2에 저장된 총 프로젝트 수를 반환합니다.MySQL에서 COUNT를 사용할 때 null 대신 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)) (DISTINCT COUNT를 사용하여 ...
또한 : -
SELECT COALESCE(COUNT(*),0) AS projects_count, a.songs_id
모든 성공없이
.어떤 아이디어?
답장을 보내 주신 모든 분들께 감사드립니다. 그러나 제안 사항 중 어느 것도 COALESCE 사용을 포함하여 'null'이외의 다른 것을 제공하지 않는 것 같습니다. 그러나 COALESCE는 새로운 것이고 COUNT (*)와 결합 할 때 사용할 적절한 구문이 불확실합니다. 내 코드 예제로 좀 더 자세히 설명 할 수 있다면 내 시도가 여전히 'null'로 나타나는 것처럼 가장 감사 할 것입니다. 감사! – gordyr
제 편집을 시도하고 작동하는지 확인하십시오. – Crontab
슬프게도 나는 아직도 그 노력에 감사하지만, 아직하지 않습니다. 내가 싫어하는 한, 솔루션을 찾을 때까지 jquery hack을 임시로 넣어 null 값을 0으로 대체해야 할 수도 있습니다. :-( – gordyr