MYSQL查询,形成具有特定结果的下拉列表

时间:2013-02-15 01:27:30

标签: mysql distinct

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

ID日期时间注册

1 1362981600 9中午0
2 1363586400 9中午0
3 1364191200 9中午0
4 1362981600 1-4 pm 0
5 1363586400 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,并且只显示每个日期中的一个(星期一或星期二等),这些日期有一个时间段。

因此,如果我从注册表= 0的表中执行select *,我会得到这些结果,使用时间戳获取星期几我使用PHP生成以下内容,同时循环查询。

星期一,9-noon
星期一,9-中午 星期一,9-中午 星期一,下午1-4点 星期一,下午1-4点 星期一,下午1-4点 星期四,下午1-4点 星期四,下午1-4点 星期五,中午9点 星期五,下午1-4点

我想得到的是:
星期一,9-中午 星期一,下午1-4点 星期四,下午1-4点 星期五,中午9点 星期五,下午1-4点

谢谢!

1 个答案:

答案 0 :(得分:0)

你需要添加一个“group by”子句,你就可以了。我不知道你用什么公式来推导这一天,所以我在下面任意使用一个例子来说明:

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;