2014-10-30 117 views
0

我正在處理將從數據庫的一部分中提取信息但刪除部分結果的查詢。這是數據庫:MySQL減法查詢語法

CREATE TABLE elements 
(
    atomicNumber INT UNSIGNED NOT NULL PRIMARY KEY, 
    symbol VARCHAR(3) NOT NULL, 
    elementName VARCHAR(25) NOT NULL, 
);  

INSERT INTO elements VALUES (1, 'H', 'Hydrogen'); 
INSERT INTO elements VALUES (2, 'He', 'Helium'); 
INSERT INTO elements VALUES (3, 'Li', 'Lithium'); 
INSERT INTO elements VALUES (4, 'Be', 'Beryllium'); 
INSERT INTO elements VALUES (5, 'B', 'Boron'); 
INSERT INTO elements VALUES (6, 'C', 'Carbon'); 
INSERT INTO elements VALUES (7, 'N', 'Nitrogen'); 
INSERT INTO elements VALUES (8, 'O', 'Oxygen'); 
INSERT INTO elements VALUES (9, 'F', 'Fluorine'); 
INSERT INTO elements VALUES (10, 'Ne', 'Neon'); 

我想比atomicNumber 1.其他數據庫返回的所有記錄這是我使用的查詢:

當我做到這一點查詢,我得到這個錯誤:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Minus.... 

我的查詢語法錯誤是什麼?我四處尋找過去的幾個小時,但無法弄清楚我做錯了什麼。

+1

爲什麼你在那裏有'Minus'這個詞?你想做什麼?你在哪裏看到語法'SELECT ... FROM ...減號SELECT ... WHERE ...'?這是沒有意義的。查詢是'SELECT ... FROM ... WHERE ...'。 – 2014-10-30 20:03:26

+2

Mysql不支持減法語法,使用不存在的代替http://stackoverflow.com/questions/12128844/minus-operator-giving-me-erros-in-mysql雖然我不知道你爲什麼不會如果你有一個集合,juse使用atomicNumber!= 1或不在(1)中。 「 – xQbert 2014-10-30 20:05:17

+0

」找不到出了什麼問題?「它會在錯誤信息中告訴你! – patricksweeney 2014-10-30 20:07:21

回答

1

要排除不同的元素,你可以只使用不-等於比較:

SELECT * FROM elements WHERE atomicNumber != 1; 

如果你有,你想排除很多元素,你可以使用NOT IN代替(但也可能沒有很高性能):

SELECT * FROM elements WHERE atomicNumber NOT IN (2,5,10); 
+0

謝謝!我的數據庫比我在這裏發佈的內容(包括組,期間)多一點,但這足以讓我找到正確的答案。 :) – 2014-10-30 20:08:47

0

從?第二查詢

Select atomicNumber, symbol, elementName From elements Minus select atomicNumber, symbol, elementName Where atomicNumber = 1; 

Select atomicNumber, symbol, elementName FROM elements Where atomicNumber = 1; 

我想..

我的意思是,你缺少一個從聲明,只是說,檢查代碼。