1

「ラベル」に空の値を返す次のステートメントがあります。

SELECT *,
IF (
    `date_to` IS NULL,
    CONCAT(DATE_FORMAT(`date_from`, '%D %M %Y'), ' ', `location`),
    CONCAT(DATE_FORMAT(`date_from`, '%D %M %Y'), ' - ', DATE_FORMAT(`date_to`, '%D %M %Y'), ' ', `location`)
) AS `label`
FROM `courses`
ORDER BY `date_from` ASC

date_fromとのdate_to列はどちらも DATE 型で、2 番目の列にはデフォルト値の が含まれる場合があります0000-00-00

何が原因でしょうか?

4

1 に答える 1

2

DATE_FORMAT(cast('0000-00-00' as date), '%D %M %Y')NULL を返すため、全体CONCATも null になります。

date_toおそらく、条件の値「0000-00-00」とも比較する必要がありIFますか?

于 2013-09-10T15:18:49.853 に答える