2017-02-04 5 views
0

なぜ構文エラーが発生しているのですか?SQLで構文エラーが表示される理由を教えていただけますか?

テーブル名はcustomersです。 を使用しているときに構文エラーが発生します。 ここで

がテーブル

enter image description here

そして、ここでエラーのスクリーンショット

enter image description here

+3

おそらくmariadbがサポートされていないため、 '明確なfrom'演算子です。私はそのようなオペレータを自分で聞いたことはありません – Shadow

+0

@Shadowよろしいですか? –

+0

@NinjaBoy:あなたは正しい構文(IS DISTINCT FROM)を使用したと思いますか? – rkosegi

答えて

1

である私は、あなたが唯一のスタートは等しい終了とIDが

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でサポートされていないと言います、それは本当ですか? –

1

is distinct from以下のように示されている出力を有するこのクエリ

select distinct *from table1 where start <> end_ 

例はNULLなどのANSI標準的な方法であるので、NULLは別の値と異なっています。これはNULLセーフ・オペレータと呼ばれます。

MySQL/MariaDBのNULLセーフセーフティオペレータは<=>です。しかし、これは平等のためであり、不平等ではありません。

だから、あなたが欲しい:

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

重複したトピックで説明したとおり... – Shadow

関連する問題