Mysql:在同一张表上进行子查询更新?

标签 mysql

我明白为什么这是有问题的,但似乎无法像 SO 上的其他人那样解决问题..

我不想使用子查询来增加票号。不能使用 auto_inc,因为已经有一个 auto_inc'ing 主键..

这是我想做的:

UPDATE tickets SET tickets.ticket_number=(
    SELECT (MAX(ticket_number)+1) FROM tickets
) WHERE ticket_id=12345;

给我:您不能在 FROM 子句中指定要更新的目标表 'tickets'

谢谢!

最佳答案

如果我错了请纠正我,但这是你想要达到的结果吗?:

UPDATE tickets SET tickets.ticket_number=(
   SELECT max_ticket FROM (
   SELECT (MAX(ticket_number)+1) AS max_ticket FROM tickets ) AS sub_table) 
WHERE ticket_id=12345;

关于Mysql:在同一张表上进行子查询更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17530036/

相关文章:

php - 使用 htaccess 在 url 中使用数据库中的数据

mysql - 带有 Java 8 LocalDateTime 的 Spring Data JPA

php - 在 Laravel 中向注册表单添加字段不起作用

php - 按时间戳分组MYSQL输出空行

具有与分页相关的多个状态变化的 Mysql 查询

mysql - 关于 MySQL 分组依据

mysql - 如何修复蛋糕烘焙控制台中的错误 "PHP Fatal error: Call to undefined function mysql_query() "

mysql - golang - mysql 驱动 - 数据库函数

javascript - 添加一行 PHP header ('location...' ) 时,Highcharts 不显示

mysql - 如何让 mysql CASE 或 IF 跳过一条记录?