php - Mysql max函数及具体值

标签 php mysql sql max

我有以下 tTable 的表结构

id | version | parentId
1  | 1       | 1
2  | 1       | 2
3  | 2       | 2
4  | 1       | 3
5  | 2       | 3
6  | 3       | 3

如果我执行

SELECT MAX(id) AS maxId, FROM tTable GROUP BY parentId

然后它将返回以下结果。

id | version | parentId
1  | 1       | 1
3  | 2       | 2
6  | 3       | 3

但在这里我想对返回的结果进行一些更改,例如我希望在 tTable 中使用 max() 得到以下结果集。

id | version | parentId
1  | 1       | 1
3  | 2       | 2
*5 | 2       | 3*

id = 第 5 条记录。我想获取另外两 strip 有 max(id) 的记录,但想要为parentId = 3获取不同的id(我想提供条件)。

在任何条件下 max() 都可能吗?我想保留其他最大 ID,但只想更改特定记录?

编辑:

这里 5(或者可能是 4)将来自动态变量。因此,在parentId = 3的情况下,id可以是任何值(可以是4或5或6)。

最佳答案

您可以使用UNION ALL来获得您想要的结果,但这可能不是一个精确的解决方案。如果有帮助的话就想放一次。请在此处查看演示 http://sqlfiddle.com/#!2/78cde/9

(SELECT MAX(id) AS maxId, version, parentId 
FROM tTable 
WHERE parentId != 3
GROUP BY parentId)

union all

(SELECT id as maxId, version, parentId 
FROM tTable 
WHERE parentId = 3
order by maxId desc
limit 1,1)

关于php - Mysql max函数及具体值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23903532/

相关文章:

PHP_CodeCoverage_Filter::getInstance() 运行 phpunit 时出错

php - 使用 1 个表单插入多个订单

php - 多个站点上的 APC 用户缓存 key 冲突

mysql - 无法使用 MySql 连接到 Win Xp 服务器

sql - (Mysql) 如何标记不同的WHERE OR 行?

javascript - 如何将语言翻译添加到 amcharts?

javascript - 从日期选择器按天搜索

python - 在 slim python 3.6 docker 镜像上运行 python mysql 客户端

sql - 为什么这个索引不能提高查询性能

mysql - 我能否获得行的 SUM() 的第二大值(使用 COUNT())?