2015-01-16 2 views
0

Может ли кто-нибудь помочь мне найти эту ошибку синтаксиса?Синтаксическая ошибка, использующая IS NOT, где статья

SELECT `song`, COUNT(*) 
FROM `2015_awards` 
WHERE `song` IS NOT `NoVote` 
GROUP BY `song`; 

Я пытаюсь исключить песни NoVote, и это не сработает. Все остальное в порядке. Когда у меня такие проблемы с Google, похоже, что это сработает.

+0

Что такое 'novote'? –

+2

'IS NOT' не является оператором равенства в SQL (он используется для проверок' NULL'). Вы хотите 'WHERE song <> 'NoVote'' Предполагая, что NoVote является значением строки песни, а не именем столбца. –

+0

'IS NOT' ожидает 'boolean_value' не ** строка ** – violator667

ответ

2

Вы не можете использовать передать NoVote в качестве значения IS или IS NOT Попробуйте это:

SELECT song, COUNT(*) FROM 2015_awards WHERE song != 'NoVote' GROUP BY song; 
+0

Да - это тоже отлично работает, так что теперь у меня есть 2 решения, в которых у меня их не было, большое спасибо! – streetwitch

3

IS NOT неправильно. Возможно, вам необходимо использовать <>.

+0

Yep - отлично, см. Мой комментарий выше. Он работает - большое спасибо! – streetwitch

1

IS Ключевое слово для сравнения только NULL. Как говорит Пигас, вы, вероятно, должны использовать <>.

Надеюсь, что это решит вашу проблему

+0

Да - как мой предыдущий комментарий, он работает. Я не понял, что IS работает только для NULL. Очень полезная информация - спасибо – streetwitch

+0

Нет проблем! Рад помочь –

Смежные вопросы