小美是一所中学的信息科技老师,她有一张 seat 座位表,平时用来储存学生名字和与他们相对应的座位 id。
其中纵列的 id 是连续递增的
小美想改变相邻俩学生的座位。
你能不能帮她写一个 SQL query 来输出小美想要的结果呢?

示例:
±--------±--------+
| id | student |
±--------±--------+
| 1 | Abbot |
| 2 | Doris |
| 3 | Emerson |
| 4 | Green |
| 5 | Jeames |
±--------±--------+

假如数据输入的是上表,则输出结果如下:
±--------±--------+
| id | student |
±--------±--------+
| 1 | Doris |
| 2 | Abbot |
| 3 | Green |
| 4 | Emerson |
| 5 | Jeames |
±--------±--------+

注意:
如果学生人数是奇数,则不需要改变最后一个同学的座位。

解法一

使用IF(expr1,expr2,expr3)函数判断,
等于偶数的-1,等于奇数的+1,
在结果集里再次判断,当前的ID是最后一个而且是奇数的话不做改变

SELECT if(id%2=0,id-1,if(id%2=1 and id!=(select max(id) from seat),id+1,id))
as id,student
from seat order by id asc

【mysql】更换相邻俩学生的座位相关推荐

  1. 给n个学生分配n个座位,要求学号相邻的学生座位不相邻!

    随机分配座位,共n个学生,使学号相邻的同学座位不能相邻.座位肯定也是n个,如果座位多余学生个数,这种情况 没有考虑.!也是一种问题...我的思路是,先定义50个拥有学号的学生并且该学生对象中保存他的学 ...

  2. mysql计算相邻的差值_MySQL如何计算相邻两行某列差值

    MySQL计算相邻两行某列差值的方法:首先通过[r1.rownum = r2.rownum - 1]来判断两条记录是否是前后行:然后再使用TIMEDIFF函数来计算时间差即可. [相关学习推荐:mys ...

  3. 基于SSM+SpringBoot+MySQL+LayUI的高校学生评教系统

    大家好,很高兴和大家分享源码.不管是什么样的需求.都希望各位计算机专业的同学们有一个提高. 大家可以通过常用的搜索引擎,以百度为例,搜索 源码乐园 code51 ,然后再次搜索 自己想要的即可.更多的 ...

  4. mysql每隔俩小时、四小时、八小时进行数据统计

    mysql每隔俩小时.四小时.八小时进行数据统计 需求:我们经常会遇到每隔一分钟.一小时.一天.一个月进行数据统计,遇到如标题所说的统计信息比较少见,在遇到一些坑之后,解决了问题,先上坑: HOUR ...

  5. MySQL数据库大作业——学生管理系统GUI

    MySQL数据库大作业--学生管理系统GUI 原程序链接: https://www.bbsmax.com/A/kmzL3WQBdG/ 为了完成数据库大作业, 我在其基础上进行了一定的修改和扩充. 如果 ...

  6. (附源码)springboot+mysql+基于Java的学生请销假审批管理系统的设计与实现 毕业设计130939

    摘 要 科技进步的飞速发展引起人们日常生活的巨大变化,电子信息技术的飞速发展使得电子信息技术的各个领域的应用水平得到普及和应用.信息时代的到来已成为不可阻挡的时尚潮流,人类发展的历史正进入一个新时代. ...

  7. mysql基于Java的学生请销假审批管理系统的设计与实现毕业设计源码130939

    摘  要 科技进步的飞速发展引起人们日常生活的巨大变化,电子信息技术的飞速发展使得电子信息技术的各个领域的应用水平得到普及和应用.信息时代的到来已成为不可阻挡的时尚潮流,人类发展的历史正进入一个新时代 ...

  8. springboot+mysql+基于Java的学生请销假审批管理系统的设计与实现 毕业设计-附源码130939

    摘 要 科技进步的飞速发展引起人们日常生活的巨大变化,电子信息技术的飞速发展使得电子信息技术的各个领域的应用水平得到普及和应用.信息时代的到来已成为不可阻挡的时尚潮流,人类发展的历史正进入一个新时代. ...

  9. JavaWeb第九次:程序设计题:在MySQL,创建一个学生信息数据库Student,创建一张学生注册信息表message,包含name (姓名)、age (年龄)、sex (性别)、educ

    程序设计题: 在MySQL,创建一个学生信息数据库Student,创建一张学生注册信息表message,包含name (姓名).age (年龄).sex (性别).education(学历).phon ...

最新文章

  1. Linux--线程编程
  2. 行为模式之Strategy模式
  3. os.path python使用遍历文件夹文件
  4. 这个回答让我错失offer!offer拿到手软
  5. 朴素贝叶斯分类器(Naive Bayes Classifiers)
  6. python编程(你的电脑能够执行多少线程和进程)
  7. html radio 默认图片替换_用纯CSS改变html radio/checkbox默认背景颜色样式
  8. [CareerCup] 7.6 The Line Passes the Most Number of Points 经过最多点的直线
  9. ENVI入门系列教程---二、图像分析---10.基于专家知识决策树分类
  10. 今天,你脸上还长痤疮吗?
  11. Spring 官方文档(中文翻译)
  12. 对100层楼两个玻璃球测试问题的理解
  13. 101.symmetric-tree
  14. 【校招VIP】产品设计分析之文案功底考察
  15. 郭敬明道歉承认作品抄袭:如何维护互联网作品版权信息
  16. C语言运算符的优先级表
  17. 海洋洋流图绘制 html5,虚拟现实系统中海洋洋流可视化的研究与实现
  18. python中not、and和or的简介以及优先级说明
  19. 【宇宙编码】厉害,生日那天:程序员小哥把天上的宇宙星云都送给女神了~
  20. 欢聚时代财报背后:海外征途的持久战

热门文章

  1. 【机器学习】多标签分类怎么做?(Python)
  2. HTML 文件中的 DOCTYPE 是什么作用?
  3. Segment Anything论文阅读笔记
  4. 主流SpringCloud微服务架构,您可少走弯路
  5. Mysql数据库查询重复数据
  6. 深圳所有狗植入芯片,有助于减少流浪狗,芯片至少可以使用15年
  7. 【代码】PHP5 怎样制作图片验证码
  8. 双网卡绑定bond0
  9. Taro + React + TS + Taro-UI + ECharts + Markdown 开发微信小程序
  10. 股份授权证明(DPOS)概述