我有SQL查询问题。我想对表中的条目进行排序,所以更新的记录排在第一位。我用这个查询:

SELECT *
FROM swt_subjects
WHERE `type` = 2
ORDER BY `date_beg` DESC, `name` DESC


如果主题仅在表中出现一次,但如果主题出现几次,则在表中多次显示时效果很好。如何修改此查询以仅显示每个名称一次?

DB中的表方案为:

id, name, type, date_beg, date_end




编辑:
使用GROUP BY,仍然无法正确显示。

最佳答案

您可能要使用GROUP BY子句:

SELECT
  id, name, type, MAX(date_beg) as start, MAX(date_end) as end
FROM
  swt_subjects
WHERE
  type = 2
GROUP BY
  id, name, type
ORDER BY
  start DESC, name DESC

关于php - 在mysql查询中删除冗余,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29291046/

10-16 15:45