essay
hot50-有趣的电影
#mysql
hot50——有趣的电影
表:cinema
| Column Name | Type |
|---|---|
| id | int |
| movie | varchar |
| description | varchar |
| rating | float |
id 是该表的主键(具有唯一值的列)。
每行包含有关电影名称、类型和评级的信息。
评级为 [0,10] 范围内的小数点后 2 位浮点数。
编写解决方案,找出所有影片描述为 非 boring (不无聊) 的并且 id 为奇数 的影片。
返回结果按 rating 降序排列。
结果格式如下示例。
示例 1:
输入:
| 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 |
输出:
| id | movie | description | rating |
|---|---|---|---|
| 5 | House card | Interesting | 9.1 |
| 1 | War | great 3D | 8.9 |
解释:
我们有三部电影,它们的 id 是奇数:1、3 和 5。id = 3 的电影是 boring 的,所以我们不把它包括在答案中。
答:
select id, movie, description, rating from cinema
where id % 2 != 0 and description != 'boring'
order by rating desc解析:
- 如何判断奇数?
在 SQL 中,判断奇数主要有两种常用方法:
取模运算(推荐):id % 2 = 1。这是最通用的写法,表示 id 除以 2 的余数为 1。
MOD 函数:MOD(id, 2) = 1。功能与上面相同。 - 不等于的写法
在 WHERE 子句中,表示“不等于”有两种符号,它们在 MySQL 中是通用的:
!=(最常用)
<>(符合 SQL 标准) - 排序
ORDER BY rating:默认是升序(从小到大)。
ORDER BY rating DESC:DESC 表示降序(从大到小),符合题目要求。