Как правильно использовать как в SQL - PullRequest
0 голосов
/ 12 февраля 2019

Я работаю над проблемой "Не скучные фильмы" в leetcode.Эта проблема описывается следующим образом: "X city открыл новый кинотеатр, многие люди хотели бы пойти в этот кинотеатр. Кинотеатр также выдает плакат с указанием рейтингов и описаний фильмов. Пожалуйста, напишите запрос SQL навыводить фильмы с нечетным идентификатором и не скучным описанием. Упорядочить результат по рейтингу. "

Например, настольный кинотеатр

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

По сути, оба решения используют одну и ту же идею для решения проблемы, но я не могу понять разницу между ними.Может кто-нибудь сказать мне, почему мое решение не проходит тест?

Ответы [ 4 ]

0 голосов
/ 12 февраля 2019

LIKE %boring% выберет

_boring!
...boring...

и т. Д.

Но значение описания просто "скучно"

0 голосов
/ 12 февраля 2019

Ответ не принят, потому что они хотят, чтобы вы отфильтровывали строки с описаниями, которые являются «скучными», а не строки, которые имеют описания, например, «не скучно» или «только немного скучно».Ваш запрос отфильтрует все три строки.

0 голосов
/ 12 февраля 2019

В описании проблемы четко указано ... описание, которое не является «скучным» .Он не говорит «не содержит», он говорит «нет»

contain равен LIKE в sql и is равен = в sql

0 голосов
/ 12 февраля 2019

вы должны использовать ('% скучный%') на вашем лайке

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