所以我有一个表(table_name),其列为Sno,count。 count的默认值为1。 如果要增加Sno所在的count列的值,请说1.。
UPDATE table_name SET count=count+1 where Sno=1;
有效!
但是,如果我想增加Sno为Max的count的值怎么办?
Sno count
1 2
2 1
基本上,我需要帮助来创建:
UPDATE table_name SET count=count+1 where Sno=1;
&
select MAX(Sno) from table_name;
答案 0 :(得分:1)
使用以下内容:
UPDATE table_name t1
INNER JOIN (SELECT MAX(t2.Sno) AS max_Sno
FROM table_name t2) AS t3 ON t3.max_Sno = t1.Sno
SET t1.count = t1.count + 1;
答案 1 :(得分:0)
类似的东西:
update table_name
set count = count+1
where sno = (select max(sno) from table_name)
是一种明显的方法(在大多数RDBMS中有效), 但在MySQL中不是 :
您不能在FROM子句中指定目标表'table_name'进行更新
查看基于联接或进一步间接的答案以找到可行的方法。
答案 2 :(得分:0)
我还没有测试过,我正在用手机打电话,但是我认为您需要为此跳过烦人的箍。
在要更新的表上使用子查询,但是通过将子查询嵌套在另一个子查询中来从MySQL中“隐藏”该事实。
UPDATE
table_name
SET
count = count + 1
WHERE
Sno = (SELECT Sno FROM (SELECT MAX(Sno) AS Sno FROM table_name) deref)
JOIN
方法也可以使用(来自@MadhurBhaiya),如下所示...