2014-10-30 72 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; 

我想..

我的意思是,你缺少一个从声明,只是说,检查代码。