社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  DATABASE

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

JamesWang • 5 年前 • 1260 次点击  

在下表中 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
 
1260 次点击  
文章 [ 1 ]  |  最新文章 5 年前