首页 > 解决方案 > 什么是在 SQL 中使用的正确方法

问题描述

我正在解决 leetcode 中的“不无聊的电影”问题。问题描述如下 “X城新开了一家电影院,很多人想去这家电影院。电影院还发了一张海报,上面写着电影的评分和描述。请写一个SQL查询输出奇数的电影ID 和不“无聊”的描述。按评分排序结果。”

例如,桌上电影院

+---------+-----------+--------------+-----------+
|   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     |
+---------+-----------+--------------+-----------+

我的解决方案是:

SELECT id, movie ,description, rating 
FROM cinema
WHERE ID % 2 != 0 AND description NOT LIKE %boring%
ORDER BY rating DESC

此解决方案无法通过 leetcode 测试。

预期的解决方案是:

SELECT id, movie ,description, rating 
FROM cinema
WHERE id % 2 != 0  AND description != 'boring'
ORDER BY rating DESC

基本上,两种解决方案都遵循相同的想法来解决问题,但我无法理解它们之间的区别。谁能告诉我为什么我的解决方案无法通过测试?

标签: mysqlsqldatabasedata-science

解决方案


答案不被接受,因为他们希望您过滤掉具有完全“无聊”的描述的行,而不是具有诸如“不无聊”或“只是有点无聊”之类的描述的行。您的查询将过滤掉所有三行。


推荐阅读