2017-02-04 4 views
0

Почему я получаю синтаксическую ошибку, может ли кто-нибудь сказать мне?Может ли кто-нибудь сказать мне, почему я получаю синтаксическую ошибку в SQL?

Мое имя таблицы customers. Получение синтаксической ошибки при использовании IS DISTINCT FROM.

Вот таблица

enter image description here

А вот скриншот ошибки

enter image description here

+3

Возможно потому, что MariaDB не поддерживает 'отличается оператор от'. Я никогда не слышал о таком операторе. – Shadow

+0

@Shadow Вы уверены? –

+0

@NinjaBoy: что заставляет вас поверить, что вы использовали правильный синтаксис (IS DISTINCT FROM)? – rkosegi

ответ

1

Я предполагаю, что вы хотите получить только строки, в которых начало не равно конец и идентификаторы DISTINCT

SELECT DISTINCT id FROM customers WHERE start!=end; 
+0

Это предполагает, что 'start' и' end' 'NOT NULL'. –

0

Насколько я знаю, mysql не может выполнить запрос. Вместо этого вы можете использовать ниже запрос, я надеюсь, что это вам поможет.

SELECT `id` FROM `customers` 
WHERE ((`start` <> `end` OR `start` IS NULL OR `end` IS NULL) 
AND NOT (`start` IS NULL AND `end` IS NULL)) 
+0

@ Shadow говорит, что IS DISTINCT FROM не поддерживается в mariaDB, это правда? –

0

использовать этот запрос

select distinct *from table1 where start <> end_ 

пример с выходом, как показано ниже

enter image description here

1

is distinct from является стандартным способом ANSI включения NULL, поэтому NULL отличается от другого значения. Это называется оператором NULL.

NULL -сервер в MySQL/MariaDB - <=>. Однако это касается равенства, а не неравенства.

Итак, вы хотите:

select c.* 
from customers c 
where not (c.start <=> c.end); 
+0

Как описано в повторяющейся теме ... – Shadow

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

  • Нет связанных вопросов^_^