我正在开发一个网站,其中包含一个连接到数据库的空缺日历。我已设法创建表格,列出2012-10-01至2030年的每一天,其中包含以下字段:
MyTable
-----------
-dt date
-mid smallint (ID for each month)
-y smallint (year)
-m tinyint (month)
-d tinyint (day)
-dw tinyint (day of week)
-monthName varchar
-isVacant binary
-isWeekday binary
我想在显示每个月(中)的网站上显示这些数据,显示每一天以及它们是空置还是被占用。我需要基本上将数据从行转换为列。
我已经找了一个查询来做到这一点但到目前为止没有任何工作。我试图重写数据透视查询的例子,但我似乎没有正确的语法。任何人都可以帮我这个吗?
这是什么东西看起来像: mysql calendar table - html table
答案 0 :(得分:0)
为什么要在mysql查询中将数据转换为单行?我只是将数据拉入php,每天一行,并使用php来安排我想要的数据。可能有一个mysql解决方案,但我不认为这是值得的。只需循环播放几天,就可以随时填充数组。
答案 1 :(得分:0)
我不确定,但我认为这是你想要的。如果您提供表格数据和结果样本可能会更好:
select m, (case d when 1 then isVacant), (case d when 2 then isVacant),
(case d when 3 then isVacant), .....
from MyTable
group by m
order by m
编辑:查看sqlfiddle 请注意,我创建了isVacant列作为整数类型字段。