每月显示mysql日历

时间:2012-10-17 17:49:07

标签: mysql sql pivot

我正在开发一个网站,其中包含一个连接到数据库的空缺日历。我已设法创建表格,列出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

2 个答案:

答案 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列作为整数类型字段。