🎈写在前面
🙋♂️大家好呀,我是超梦。大家可以叫我小梦~
小伙伴们都知道,不管是在学习中还是日常工作中,几乎天天是要跟数据库打交道的,为了更好的操作数据库,我们的SQL知识储备是必不可少的。想要掌握好SQL,那少不了每天的练习与学习。接下来小梦会带领小伙伴们一起每天刷一道LeetCode-数据库(SQL)相关的题目,然后在文章后例举相关知识点帮助小伙伴们学习与巩固,更好的掌握SQL。
🙋♂️ 小伙伴们如果在学习过程中有不明白的地方,欢迎评论区留言提问,小梦定知无不言,言无不尽。
目录
⭐SQL题目概述⭐
⭐解题思路⭐
⭐方法实现⭐
⭐代码测试⭐
⭐知识点小结⭐
⭐SQL题目概述⭐
表
cinema
:+---------+-----------+--------------+-----------+ | id | movie | description | rating | +---------+-----------+--------------+-----------+ | 1 | War | great 3D | 8.9 | | 2 | Science | fiction | 8.5 | | 3 | irish | boring | 6.2 | | 4 | Ice song | Fantacy | 8.6 | | 5 | House card| Interesting| 9.1 | +---------+-----------+--------------+-----------+
题目:
某城市开了一家新的电影院,吸引了很多人过来看电影。该电影院特别注意用户体验,专门有个 LED显示板做电影推荐,上面公布着影评和相关电影描述。
作为该电影院的信息部主管,您需要编写一个 SQL查询,找出所有影片描述为非 boring (不无聊) 的并且 id 为奇数 的影片,结果请按等级 rating 降序排列。
原题链接https://leetcode-cn.com/problems/not-boring-movies/solution/you-qu-de-dian-ying-by-leetcode/
⭐解题思路⭐
根据题意我们是要写一个SQL查询,题目中有三个关键的地方,小梦用红字标注了。
1. 首先第一个条件是影片描述为非 boring的。
description <> 'boring'
2. 第二个条件是id 为奇数。在这里我们可以使用
mod(id,2)=1
来确定奇数 id。mod(id,2)=1
3. 第三个条件是结果按等级 rating 降序排列。
order by rating desc
⭐方法实现⭐
方法实现:
select * from cinemawhere mod(id, 2) = 1 and description != 'boring'order by rating DESC;
小伙伴们如果还有其他实现方式可以评论区留言哦~
⭐代码测试⭐
执行代码,进行测试
与预期结果一致,测试成功!
⭐知识点小结⭐
MySQL判断基数的五种方法,拿小本本记下哦~
1. mod(x, 2) = 1 ,如果余数是 1 就是奇数。
2. power(-1, x) = -1 , 如果结果是 -1 就是奇数。
3. x % 2 = 1 ,如果余数是 1 就是奇数。
4. x & 1 = 1 ,如果是 1 就是奇数。
5. x>>1<<1 != x, 如果右移一位在左移一位不等于原值,就是奇数。