我想從這個not in
查詢轉換爲not exists
轉換不是不存在
select id, name, cat from posts where id not in (1, 100)
我怎麼變成一個不存在
我想從這個not in
查詢轉換爲not exists
轉換不是不存在
select id, name, cat from posts where id not in (1, 100)
我怎麼變成一個不存在
SELECT id,
NAME,
cat
FROM posts p
WHERE NOT EXISTS (SELECT 1
FROM (SELECT 1 AS col
FROM dual
UNION
SELECT 100 AS col
FROM dual) a
WHERE p.id = a.col);
您當前的查詢是好的,但仍然如果您想使用NOT EXISTS,請嘗試此操作。
你並不需要這種轉換。如果您使用的是子查詢,而不是硬編碼的值列表,則not exists
將是合適的。
您當前的查詢很好。
只是好奇......你爲什麼需要這樣做?看來你目前的查詢沒問題。 – everton 2012-03-20 20:59:22
當我使用NOT IN我的查詢需要9分鐘。當我刪除NOT IN需要13秒。只是想看看不存在會有所作爲 – Luke101 2012-03-20 21:07:28
另外:確保'id'被索引。 – IAbstract 2012-03-20 21:09:00