1

我有一个 MYSQL 表,其中包含以下信息。它保存某人可以注册的事件的日期和时间。

id 日期 时间 注册

1 1362981600 9-NOON 0
2 1 1364191200 9-NOON 0 4
136291200 9-NOON 0
4 1362981600 1-4 PM 0
5 1364191200 1-4 PM 0
6 1364191200 1-4 PM 0
7 1363240800 1-4PM 0
8 1363845600 1-4PM 0
9 1363327200 9-中午 0
10 1363327200 1-4 pm 0
11 1363327200 3-7 pm 1

我需要一个 mysql 查询来提取所有已注册的字段 = 0,并且只显示具有时隙的每一天(星期一或星期二等的一天)。

因此,如果我执行 select * from table where registered=0 我会得到这些结果,使用时间戳来获取星期几,我使用 PHP while 循环通过查询生成以下内容。

周一 9 点
周一 9 点
周一 9 点
周一 1-4 点
周一 1-4 点
周一 1-4 点
周四 1-4 点
周四 1-4 点
周五 9 点
周五,下午 1-4 点

我想得到的是:
周一,9-noon
周一,1-4 pm
周四,1-4 pm
周五,9-noon
周五,1-4 pm

谢谢!

4

1 回答 1

0

您需要添加一个“分组依据”子句,然后一切就绪。我不知道你用什么公式来推算一天,所以我在下面随便用一个来说明:

select date(from_unixtime(date)) as date
    , dayname(from_unixtime(date)) as day
    , time
    , min(date) as cronos
from table
where registered=0
group by date, day, time
order by cronos asc, time asc

不同的查询以匹配下面评论中添加的描述:

select dayofweek(from_unixtime(date)) as day_num
    , dayname(from_unixtime(date)) as day_name
    , time
from table
where registered=0
group by day_num, day_name, time
order by day_num asc, time asc;
于 2013-02-15T01:38:21.273 回答