【发布时间】:2022-07-16 01:52:00
【问题描述】:
我不确定我正在尝试做的事情是否可以完成。我正在使用 MySQL 5.7.9。我希望我的查询为一个字段返回记录的值,或者,如果它为空,则比所有记录的该字段的最大值大一,包括未返回的记录。当我阅读 MAX() 函数的定义时,我认为这不是我所需要的。
例如,如果我有一张桌子
| GO | a |
|---|---|
| 1 | b |
| 2 | c |
| 3 | d |
| e |
我想为第四条记录返回 4(因为该记录的 GO 为空,并且 4 比 3 大 1,GO 的最大值),并且对于每条其他记录,它们的 GO 值。
我尝试将 Max() 嵌套在 IFNULL() 中,但是对于 a = e 的情况,MAX(GO) 只是返回 NULL,因为 a=e 的所有记录都有一个 NULL GO 值。我想我所要求的实际上是将单独查询的结果放在这个查询中:SELECT MAX(GO) FROM [TABLE]
我想我的例子过于简单化了。我的 GO 列实际上是一个 auto_incremented id 列,a 是连接表的外键。我真正要寻找的是,如果此表中没有记录与联接表的记录匹配,则为下一个 auto_increment 值。
【问题讨论】:
-
您需要做的是发布示例数据和预期结果(作为文本)
-
如果
GO是auto_incremented列,怎么会是NULL,应该定义为not null?
标签: mysql