2012-03-05 42 views
1

我正在处理用户提交多个日期的项目。这些日期随后与当前用户名一起保存在数据库中。 接下来我要做的是获得所有提交日期和提交当前日期的用户的概述。但我的问题是,我只想显示一个日期,然后是所有选择了这个唯一日期的用户。就像这样:比较分贝值,并获得值+重复

  • 05.03.2012 =保罗
  • 06.03.2012 =巴蒂尔,约翰
  • 07.03.2012 =约翰,艾琳

,而不是像现在这样,因为它是在时刻:

  • 05.03.2012 =保罗
  • 06.03.2012 =巴蒂尔
  • 06.03.2012 =约翰
  • 07.03.2012 =约翰
  • 07.03.2012 =伊雷娜

你和我在一起?因为那是主要问题。 至于编码部分,我试着这样做:

$table_name = $wpdb->prefix . 'my_db'; 
$my_date_overview = $wpdb->get_results(" 
SELECT * FROM $table_name 
WHERE thedate > NOW() 
ORDER by thedate ASC"); 

foreach ($my_date_overview as $the_dates) { 
echo $the_dates->thedate; 
echo ','; 
echo $the_dates->username; 
} 

DB-表值:ID,thedate,用户名。

我试过使用“SELECT DISTINCT thedate”,但后来我没有得到用户名。我甚至可以在这里做这个过滤过程,还是我需要做一个功能?

我试过谷歌它,但没有任何运气。我没有想法和知识。 任何人都可以帮我吗? 感谢

回答

-1

你应该像美国

SELECT 
GROUP_CONCAT(DISTINCT username 
      ORDER BY username DESC SEPARATOR ',') as users, 
thedate FROM $table_name 
WHERE thedate > NOW() 
GROUP BY thedate 
ORDER by thedate ASC 
+0

CONCAT_WS()不会执行拼接操作 – Skrol29 2012-03-05 11:33:49

+0

@Skrol29是的你是对的,我编辑使用group_contact – 2012-03-05 11:37:19

+0

你真棒!谢谢! :d – Emil 2012-03-05 11:57:14

2
SELECT date, group_concat(username) FROM $table_name 
WHERE thedate > NOW() 
GROUP BY thedate 
ORDER by thedate ASC" 

音符查询GROUP_CONCAT的长度是默认的限制。为相当数量的名称yopu必须增加相应变量的值