我有一张包含日志的表
PERSON ID LOGDATE (DATETIME)
1000 2015-10-20 10:00:00
1000 2015-11-11 09:10:22
2001 2015-10-11 10:22:11
我需要按LOGDATE -DATETIME订购数据 - 但每个ID的日期最短。
select PERSONALID, LOGDATE from TABLE group by PERSONALID order by
MIN(LOGDATE) DESC
我可以通过ID进行GROUP - ORDER BY Min DATE(每个结果按ID),但是最终结果不按MIN DATE排序结果..
RESULT:
1000 ------------- 2015-10-20 10:00:00 (min date for ID=1000)
2001 ------------- 2015-10-11 10:22:11 (min date for ID=2001)
正确的答案是:
RESULT:
2001 ------------- 2015-10-11 10:22:11 (min date for ID=2001)
1000 ------------- 2015-10-20 10:00:00 (min date for ID=1000)
出了什么问题?
答案 0 :(得分:4)
这应该这样做:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create([Bind(Include = "ID,DisplayName,Date,Amount,Comment")] Charity charity)
{
if (ModelState.IsValid)
{
if(!string.IsNullOrEmpty(charity.Comment)
{
var comment = charity.Comment.ToLower().Replace("hot","###").Replace("cold","###");
charity.Comment = comment;
}
db.Donations.Add(charity);
db.SaveChanges();
return RedirectToAction("Additionalinfo", "Charities");
}
return View(charity);
}
答案 1 :(得分:0)
您需要选择MIN(LOGDATE)
,而不是LOGDATE
。选择LOGDATE
会导致MySQL从每个组中返回不确定记录的值 - 有关详细信息,请参阅MySQL Handling of GROUP BY。