有趣的电影:奇数编号且描述不是 boring
LeetCode 620 · 取模、多条件过滤、排序
面试怎么回答
WHERE id % 2 = 1 AND description != 'boring',ORDER BY rating DESC。这题简单,可以顺带提一下:如果描述可能为空,不等于判断会把空值过滤掉,要按业务决定是否保留。
先把这段讲顺;面试官追问时,再展开下面的原理和细节。
详细讲解
题意
影片表有编号、片名、描述和评分。找出编号为奇数、描述不是 boring 的影片,按评分从高到低排列。
表结构
- cinema:id(主键)、movie、description、rating
思路
奇数用 id % 2 = 1(或 MOD(id, 2) = 1),描述用 != 排除 boring,最后按 rating 降序。
参考解法
select id,movie,description,rating
from cinema
where id%2=1 and description !='boring'
order by rating desc,id,movie,description
易错点
- description 可能为 NULL 时,
!= 'boring'会把它过滤掉;要保留的话加OR description IS NULL。