所以我有一个表(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;
使用以下内容:
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;
我没有测试过这个,我正在打电话,但我认为你需要为这个跳过一个恼人的箍。
在您正在更新的表上使用子查询,但是通过将子查询嵌套在另一个子查询中来“隐藏”来自MySQL的事实。
UPDATE
table_name
SET
count = count + 1
WHERE
Sno = (SELECT Sno FROM (SELECT MAX(Sno) AS Sno FROM table_name) deref)
JOIN
方法也适用(来自@MadhurBhaiya),如图所示......
就像是:
update table_name
set count = count+1
where sno = (select max(sno) from table_name)
是显而易见的方法(并且适用于大多数RDBMS),但不适用于MySQL:
您不能在FROM子句中为更新指定目标表'table_name'
根据有效方法的连接或进一步间接查看答案。