当我尝试时,我正在使用 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')
它将返回结果:
50,100,75
因为 42 队在 '2013-08-02' 没有得分
我希望我能得到:
50,,100,75
我应该使用什么 sql 查询?
当我尝试时,我正在使用 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')
它将返回结果:
50,100,75
因为 42 队在 '2013-08-02' 没有得分
我希望我能得到:
50,,100,75
我应该使用什么 sql 查询?
如果您的意思是分数为2013-08-02
空,那么您应该使用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')
如果您的意思是没有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')
作为旁注,您似乎也可以使用BETWEEN
SELECT GROUP_CONCAT(IFNULL(score, ''))
FROM DailyScore
WHERE team = '42'
AND Date BETWEEN '2013-08-01' AND '2013-08-04'