Mysql SQL-选择“不同”并按最新顺序排序
我想为我的数据库选择所有不同的Mysql SQL-选择“不同”并按最新顺序排序,mysql,sql,pdo,Mysql,Sql,Pdo,我想为我的数据库选择所有不同的gameName记录。目前,我通过以下SQL(简化)完成此操作 表结构 id | gameName | modified __________________________________________ 1 foo 2014-12-21 19:24:59 6 goo 2014-12-18 14:24:59 8 foo 2015-01-01 11:24:59 21 doo
gameName
记录。目前,我通过以下SQL(简化)完成此操作
表结构
id | gameName | modified
__________________________________________
1 foo 2014-12-21 19:24:59
6 goo 2014-12-18 14:24:59
8 foo 2015-01-01 11:24:59
21 doo 2014-11-23 21:24:59
32 foo 2014-10-01 19:24:59
3 doo 2014-08-15 22:24:59
输出
doo
foo
goo
我正在尝试修改此SQL,以提供具有最新修改日期的独特游戏名
,然后按最新修改日期排序。我没有得到我想要的结果
期望输出
foo 2015-01-01 11:24:59
goo 2014-12-18 14:24:59
doo 2014-11-23 21:24:59
如果这对我使用的PDO有任何影响,我将非常感谢您的帮助。尝试以下方法:
SELECT gameName , Max(modified) as modified
FROM myTable
GROUP BY gameName
ORDER BY gameName;
看看这个答案:
它可能看起来像这样。我没有访问SQL Server的权限,因此现在无法测试此功能。但它应该给你一个想法
SELECT DISTINCT gameName FROM
(SELECT gameName FROM myTable ORDER BY DESC modified)
ORDER BY gameName
提示:groupby
+MAX
mysql没有义务维护嵌套查询的顺序。因此,您的查询不能保证返回所需的结果。请检查另一个答案(这是ANSI SQL友好的),然后删除您的答案。谢谢。哦,我不知道,因为我通常使用MS SQL Server,SQL Server也是一样。mysql、sql server、postgresql和oracle中不保证嵌套查询的顺序。仅仅因为它在一个特定的案例中对你有效并不意味着它会在一段时间后起作用。非常感谢,这就成功了。我试过组
,运气不太好。此sql
中的关键部分是MAX(modified)
按修改的描述排序
…
SELECT DISTINCT gameName FROM
(SELECT gameName FROM myTable ORDER BY DESC modified)
ORDER BY gameName