직원 스케줄 DB를 확인하고 (이전 stackoverflow 질문 덕분에) 사용자가 "작업하지 않음"으로 작업하지 않는 요일을 반환하는 MySQL 쿼리가 있으므로 if 사용자가 목요일에 작업하지 않으면 날짜가 원래 결과 집합에 나타나지 않더라도 PHP 스크립트를 통해 해당 공백을 채울 필요는 없지만 쿼리는 해당 날짜를 채 웁니다.MySQL이 일부 null이 아니라 모든 null을 병합합니다.
이제 문제는 사용자가 2 주 후 일정을 확인하면 전체 1 주일 동안 "실업"으로 표시된다는 것입니다. 결과가 없으면 스크립트는 "죄송합니다. 이번 주에 게시 된 일정 없음"을 출력해야하므로 사용자는 그가 일주일을 잘못 생각하고 나중에 다시 확인한다는 사실을 알게됩니다. 은 같은에 가장 적합한 쿼리 구문 무엇입니까 :
그래서 질문은 모든 행이 null의 경우는 모든 행을 반환하지 않습니다 그래서
SELECT
If Count(*) > 0 {
COALESCE(gooddata, nulldata) AS thedata
etc.
etc.
FROM sched_table
WHERE dates BETWEEN xxx AND yyy
(또는 수는 0이다).
나는 카운트를위한 열을 추가하고 스크립트 출력을 "게시하지 않음"을 시도하고 한 번의 반복 후에 종료했지만 좋은 한주에 한 번의 반복 후에도 종료되기 때문에 좌절하게됩니다.
나는 한 걸음 뒤로 물러나면 원하는 것을 할 수 있다고 확신하지만, 쿼리에 그렇게 할 수있는 방법이 있다면 매우 궁금하다. 다른 널 (null) 행을 병합하기 위해 적어도 하나의 널 (Null)이 아닌 값의 행.
내가 그 생각을 들었습니다 최근까지 최대로 준수했다 .. 당신이 원하는 정확히 무엇을 포기. 하지만 세 가지로 db 포맷팅으로 옮겨 가고 있습니다 : 1) 그것을 할 수 있습니다 (그리고 mysql 문서에서 다른 방법으로 문서를 만드는 방법에 대한 더 많은 문서가 있습니다). 2) 결과를 여러 번 반복하고 싶지 않습니다. mysql이 하나의 쿼리에서 채워진 공백을 반환 할 수있는 시간, 3) 강력한 쿼리를 사용하면 다른 언어로 더 빨리 이동할 수 있습니다. 그 메모에, 나는 견과류에 가야하고 쿼리가 이미 태그에 싸여있는 데이터를 반환하도록 유혹을 받았다. 그러나 지금은 너무 많은 데이터 포맷이 아니다 ... – Anthony
"데이터"즉 날짜 사이의 공백을 반환한다. 그것을하는 PHP의. – Anthony
@anthony - ooohhh ...데이터베이스를 사용하여 산출물을 마크 업합니다. 방금 나를 울게 만들었 어. – codemonkey