空记录时mysql'IN'出现问题

The*_*mca -1 mysql

我尝试时使用mysql:

SELECT GROUP_CONCAT(score)
FROM DailyScore
WHERE team = '42'
AND Date IN('2013-08-01','2013-08-02','2013-08-03','2013-08-04')
Run Code Online (Sandbox Code Playgroud)

它将返回以下结果:

50,100,75
Run Code Online (Sandbox Code Playgroud)

因为第42队在'2013-08-02'没有得分

我希望我能得到:

50,,100,75
Run Code Online (Sandbox Code Playgroud)

我应该使用什么SQL查询?

T I*_*T I 5

如果您的意思是得分为2013-08-02null,那么您应该使用IFNULL

SELECT GROUP_CONCAT(IFNULL(score, ''))
FROM DailyScore
WHERE team = '42'
AND Date IN('2013-08-01','2013-08-02','2013-08-03','2013-08-04')
Run Code Online (Sandbox Code Playgroud)

如果您的意思是没有2013-08-02团队记录42,您应该查看使用日历表

SELECT GROUP_CONCAT(IFNULL(score, ''))
FROM DailyScore
RIGHT JOIN Calendar ON Calendar.Date = DailyScore.Date
                   AND team = '42'
AND Calendar.Date IN('2013-08-01','2013-08-02','2013-08-03','2013-08-04')
Run Code Online (Sandbox Code Playgroud)

演示

作为旁注,似乎你也可以使用 BETWEEN

SELECT GROUP_CONCAT(IFNULL(score, ''))
FROM DailyScore
WHERE team = '42'
AND Date BETWEEN '2013-08-01' AND '2013-08-04'
Run Code Online (Sandbox Code Playgroud)