php - 如何在排序列中添加 +1

标签 php mysql identity-column

我有一个名为 sort 的表列,用于对行(1 2 3...等)进行排序。
当我插入一个新行时,如何在该列中自动添加一个增量+1

例如,如果最后一行值为 20,则新行应为 21。
我试图将此列设置为自动递增,但 phpMyAdmin 说只有一列可以是 auto(在我的例子中是 id)。

另一种解决方案是将新行作为第一行插入,在排序列中使用值 1,但在这种情况下我如何更改下面的所有其他值?

有什么帮助吗?

try {
$stmt = $db->prepare('INSERT INTO ' . $table. ' (title, content, sort) VALUES (:title, :content, :sort)') ;
$stmt->execute(array(
':title' => $title,
':content' => $content,
':sort' => ???,
));
header('Location:admin.php');
exit;

} catch(PDOException $e) {
echo $e->getMessage();
}

最佳答案

试试这个查询

"INSERT INTO $table (title, content, sort) VALUES ($title, $content,(SELECT MAX(sort)+1 FROM $table))"

关于php - 如何在排序列中添加 +1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38203122/

相关文章:

python - 在邀请人和被邀请人的列中如何找到具有 1、2、3 个先前邀请的邀请?

oracle - 使用现有存储过程通过 Entity Framework 为 Oracle 数据库生成身份

php - SQLite错误 ")"右括号

PHP创建表错误1064

php 递归 - 显示为标题的目录名称

php - codeigniter 4 url​​ 进入循环

php - 在自动加载和命名空间方面遇到问题,有人能发现是什么让我烦恼吗?

mysql - 关键字 - 和/

mysql - 查找列名 SQL

sql - SQL Server 表可以有两个标识列吗?