首页 > 数据库 >力扣626(MySQL)-换座位(中等)

力扣626(MySQL)-换座位(中等)

时间:2023-04-06 10:36:31浏览次数:53  
标签:count 626 奇数 力扣 MySQL 座位 座位号 id

题目:

表: Seat

编写SQL查询来交换每两个连续的学生的座位号。如果学生的数量是奇数,则最后一个学生的id不交换。

按 id 升序 返回结果表。

查询结果格式如下所示。

示例1:

 

解释:

请注意,如果学生人数为奇数,则不需要更换最后一名学生的座位。

解题思路:

①交换座位号是交换相邻同学的id,如果原来座位号id是奇数,换座位后id就是偶数,如果原来座位号id是偶数,换座位后id就是奇数;

②利用count(*)计算出一共有多少个学生,利用SQL中求余函数mod(n,m),返回n除以m的余数,以此来判断座位id是奇数还是偶数,如果id是奇数且id != count,那么就将id+1;如果id是奇数且id = count,那么id就是最后一个奇数不能交换,id不变;其他情况:id为偶数,那么id - 1;

③对结果进行id 升序排序。

 1 select 
 2      (case 
 3      when mod(id, 2) = 1 and id != cout then id + 1
 4      when mod(id, 2) = 1 and id  = cout then id
 5      else id - 1 end) as id,student
 6 from 
 7     seat_626,
 8         (
 9      select count(*) as cout
10      from seat_626
11     ) as temp
12 order by id;

标签:count,626,奇数,力扣,MySQL,座位,座位号,id
From: https://www.cnblogs.com/liu-myu/p/17291834.html

相关文章

  • 31.mysql查看所有索引
    当对大表进行数据迁移时,往往索引是个大问题,不但用时较长,且容易造成锁表,此时针对某些情况,就可以先备份索引信息,然后删除原表索引,数据迁移完成之后,再重建索引SELECTCONCAT('ALTERTABLE`',TABLE_NAME,'`',......
  • 关于mysql的and和or
    写了一个查询语句结果踩坑了,这个and和or分不清楚谁的优先级高在页面上看到了已经被删除的数据,我就知道糟了。话不读说直接看代码<selectid="listByUsPage"resultType="com.wuling.product.domain.TaskInfo">select*from(select*fromproject_......
  • mysql运维-------日志
    1.错误日志错误日志是MySQL中最重要的日志之一,它记录了当mysql启动和停止时,以及服务器在运行过程中发生任何严重错误时的相关信息。当数据库出现任何故障导致无法正常使用时,建议首先查看此日志。该日志是默认开启的,默认放在目录/var/log/,默认的日志文件名为mysqld.log。查看日......
  • Mysql学习笔记(连载中)
    Mysql01使用CMD连接数据库--在控制台连接数据库(需将位置切换到mysql所在地址)mysql-uroot-ppassword:12345--修改mysql账户密码及权限,安装配置完后慎用updatemysql.usersetauthentication_string=password('12345')whereuser='root'andHost='localhost';......
  • 力扣620(MySQL)-有趣的电影(简单)
    题目:某城市开了一家新的电影院,吸引了很多人过来看电影。该电影院特别注意用户体验,专门有个LED显示板做电影推荐,上面公布着影评和相关电影描述。作为该电影院的信息部主管,您需要编写一个SQL查询,找出所有影片描述为非 boring (不无聊) 的并且id为奇数 的影片,结果请按等级......
  • Linux 中知心mysql的sql文件
    1.连接mysql[root@hadoop4~]#mysql-uroot-p  2.创建库mysql>CREATEDATABASEspring; 3.查看并切换数据库mysql>showdatabases;mysql>usespring 3.执行sql文件(source/usr/user.sql) ......
  • Mysql数据库基础(2)
    一、关系  将实体与实体的关系,反应到最终数据库表的设计上来:  将关系分成三种:一对一一对多(多对一)多对多  所有的关系都是指的表与表之间的关系。1、一对一  一对一:一张表的一条记录一定只能与另外一张表的一条记录进行对应;反之亦然。  学生表:姓名,性别,年龄,身......
  • 群晖的docker设置MySQL从库功能
    群晖的docker设置MySQL从库功能主库与正常设置无区别,新建账号并授权拷贝binlog即可,注意密码强度,最好不要给任意IP访问权限;数据安全无小事以镜像为8.0.30为例在高级设置中添加环境变量即可MYSQL_ROOT_PASSWORD=e0a1021570daa600MYSQL_ALLOW_EMPTY_PASSWORD=no注意为方便修......
  • 力扣619(MySQL)-只出现一次的最大数字(简单)
    题目:MyNumbers 表:单一数字是在MyNumbers表中只出现一次的数字。请你编写一个SQL查询来报告最大的单一数字。如果不存在单一数字,查询需报告null。查询结果如下例所示。示例1: 示例2: 来源:力扣(LeetCode)链接:https://leetcode.cn/problems/biggest-single-num......
  • 力扣618(MySQL)-学生地理信息报告(困难)
    题目: 一所美国大学有来自亚洲、欧洲和美洲的学生,他们的地理信息存放在如下student表中该表没有主键。它可能包含重复的行。该表的每一行表示学生的名字和他们来自的大陆。一所学校有来自亚洲、欧洲和美洲的学生。示例:student: 写一个查询语句实现对大洲(continent)列的......