mysql - 内部加入 max 不工作

标签 mysql sql database

我有下表,我尝试使用以下查询增加 ref 列值。

orderid name age address ref
1       A    22  a1      1
2       B    21  b1      0

update table1
set ref = 
'(SELECT (MAX(ref) + 1) AS max_ref FROM table1)'
where name= 'B'

但如果是 2,它总是设置为 0。

谢谢。

最佳答案

根据 MySQL doc :

Currently, you cannot update a table and select from the same table in a subquery.

但是很容易绕过:

UPDATE table1
SET ref = (
    SELECT m.max_ref FROM (
        SELECT (max(ref) + 1) AS max_ref FROM table1) m)
WHERE name= 'B'

关于mysql - 内部加入 max 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6321609/

相关文章:

java - MySQL Incorrect datetime value错误需要JDBC解决方案

mysql - 使用子查询和唯一值插入

php - PHP Codeigniter 中的动态菜单和子菜单

sql - 如何在具有空字符串作为属性的 Oracle 中生成 XML 数据

sql - 在Where子句中进行条件检查

sql - digitalocean vps 上的 MYSQL 导入语法错误 1064

mysql - 如何在 ruby​​ on rails 中实现递归删除?

database - 如何将评论放入 HQL(Hibernate 查询语言)?

数据库设计 - 硬编码行 ID

PHP fatal error :