我的表'Foo'的格式如下,
ID Value
---------------
1 A
2 B
3 C
4 D
5 E
现在我想查询表格,
SELECT value FROM Foo WHERE value NOT IN ('A','@','C','#','E','$');
因此它会将结果返回为:
Values
----------
@
#
$
而不是
Values
----------
B
D
注意:我在表格中有超过3000万条记录。我将在具有不同值的db上连续执行此查询。
答案 0 :(得分:0)
不完全是你想要的但也许可以接受:
SELECT
(CASE WHEN '@' NOT IN (SELECT DISTINCT value FROM foo) THEN 0 ELSE 1 END) at,
(CASE WHEN '#' NOT IN (SELECT DISTINCT value FROM foo) THEN 0 ELSE 1 END) hash,
(CASE WHEN '$' NOT IN (SELECT DISTINCT value FROM foo) THEN 0 ELSE 1 END) dollar
如果foo中没有@
,没有$
,没有#
at dollar hash
------------------
0 0 0
答案 1 :(得分:0)
您可以使用要检查的值创建临时表,然后左键加入。
CREATE TEMPORARY TABLE tValues (Value VARCHAR(20));
INSERT INTO tValues (Value) VALUES ('A');
INSERT INTO tValues (Value) VALUES ('@');
INSERT INTO tValues (Value) VALUES ('C');
--etc
SELECT tValues.*
FROM
tValues t
LEFT JOIN Foo f
ON
t.Value = f.Value
WHERE
f.Value IS NULL