gpt4 book ai didi

mysql - MySQL MAX 函数的奇怪行为

转载 作者:太空宇宙 更新时间:2023-11-03 11:35:06 24 4
gpt4 key购买 nike

假设在我的 MySQL 表中还没有插入行。

CREATE TABLE Users (
SerialNo INT(9) NOT NULL AUTO_INCREMENT,
UserID INT(9) NOT NULL,
PRIMARY KEY (SerialNo)
);

当我运行以下 MySQL 语句时:

INSERT INTO Users(UserID) SELECT MAX(UserID)+1 FROM Users;

表格如下图所示:

图片链接:https://s1.postimg.org/4r2xcc7ajj/z_Ii_A-_KUp_Tzio_-00_PBL0_KQ.png

谁能告诉我为什么 MAX(UserID)+1 设置为 0 而不是 1

最佳答案

  • 0 是用于没有默认值的 int 字段的默认值指定的。
  • 将空值插入非空字段通常会产生在给定空值的字段中,它是默认值反而。
  • 大多数聚合函数仅在满足以下条件时才返回 null没有遇到非空值。
  • 由于表为空,MAX返回null,NULL + 1为NULL。
  • 您要将 null 插入到没有指定默认值的整数字段中。

编辑:要在这种情况下插入 1,请使用 IFNULL(MAX(UserId),0)+1

关于mysql - MySQL MAX 函数的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46653590/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com