Py学习  »  DATABASE

为什么“if(id=max(id),id,id+1)”在mysql中不能正常工作

JamesWang • 5 年前 • 1262 次点击  

在下表中 People 以下内容:

id name
 1 James
 2 Yun
 3 Ethan

如果我想找到最大id,我可以运行这个查询

select max(id) id from People;

结果是

id
 3 

如果要将除最后一行以外的所有行的id增加1,我尝试了以下操作:

select if(id=max(id), id, id+1) id, name from People

令人惊讶的是,我

enter image description here

为什么 max() 不象以前那样工作吗为什么只返回一行(看起来只返回第一行)? 我想我知道如何解决这个问题,如下所示:

select if(id=lastID, id, id+1) id,, name from People,
(select max(id) lastID from People) People_max
order by id;

然后我得到了我想要的:

enter image description here

但我想我还是不知道为什么前一个不起作用。

谢谢

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/48499
 
1262 次点击  
文章 [ 1 ]  |  最新文章 5 年前