mysql - MAX(count) + 1 插入时,MySQL

标签 mysql

我目前使用以下查询在每次插入时增加第三列 count

$DB2->query("INSERT INTO relations (item_ID,tag_ID,count)
                    SELECT '$ID', '$tag_id', MAX(count) + 1
                    FROM relations
                    WHERE tag_ID = '$tag_id';");

问题是当表中没有行并且我尝试插入时,Max(count) + 1 只是空值。我试过将默认值定义为零但仍然为空。该列在第一次插入时应为 1

我如何更改查询,如果先插入,则 count 为 1。我不想之前执行选择查询,因为此代码处于循环中。

最佳答案

添加一个 ifnull(...,1)

"INSERT INTO relations (item_ID,tag_ID,count)
                SELECT '$ID', '$tag_id', ifnull(MAX(count) + 1,1)
                FROM relations
                WHERE tag_ID = ''$tag_id';");

关于mysql - MAX(count) + 1 插入时,MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39002568/

相关文章:

java - NetBeans Servlet MySQL

php - 如何在普通主机账户上安装 Propel?

c# - 执行从 C# 到 MySQL 的 INSERT 语句的正确方法

mysql - 没有锁表的 MySQL

尽管 UTF-8 设置,PHP MySQL 使用 Latin1(iso-8859-1)

mysql - 如何在 MySQL 中循环遍历表并获取行?

java - JScrollPane 滚动条在 GridBagLayout 后不起作用

mysql - 如何使用 MySql 查询将数据库中的数字四舍五入到小数点后两位

php - 如果索引存在于 Laravel 迁移中,如何检查它们?

php - 为什么我不应该在 PHP 中使用 mysql_* 函数?