2015-10-07 60 views
1

我有一個訂單,其中有OrderId和OrderName列。找到無與倫比的記錄mysql

OrderId | OrderName 
------------------------ 
    1  |   food 
------------------------- 
    2  |   milk 
---------------------- 
    3  |  veg 
---------------------- 
    4  |  banana 
------------------------ 

我想,以配合一些隨機的訂單ID,如3,5,6,2,1.I訂單ID只想訂單ID不匹配一樣5,6.Please幫我查詢。

謝謝。

+0

我有點困惑,你想要什麼結果? –

+0

我有一定數量的訂單ID(說有人給了我一些隨機的訂單ID,他/她想讓我添加訂單ID,這在表中並不存在)。現在我只想知道匹配訂單ID不在數據庫中。合理? – user3209114

+0

@ user3209114 ...是否「說某人給了我一些隨機的訂單ID,並且他/她想要我添加表中不存在的訂單ID」,這意味着您想要比較訂單表的'OrderId'和另一個表數據。我正確嗎? – Mathew

回答

0

因爲你不希望獲取訂單ID 5,6,所以你可以通過下面的query

SELECT * 
FROM Orders 
WHERE OrderID NOT IN(5,6); 

更新按用戶要求排除這些命令:

SELECT a.myid as OrderId FROM 
    (
SELECT a.m*10000+b.n*1000+c.p*100+d.q*10+e.r AS myid FROM 
(SELECT 0 m UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) a 
JOIN 
(SELECT 0 n UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) b 
JOIN 
(SELECT 0 p UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) c 
JOIN 
(SELECT 0 q UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) d 
JOIN 
(SELECT 0 r UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) e 
ORDER BY myid 
    ) a 
    LEFT JOIN orders b ON a.myid=b.orderid 
    WHERE a.myid IN (1,2,3,11,12,6) AND b.orderid IS NULL; 

只需將您的訂單列表放在a.myid()中並執行上面的查詢即可。

進一步如果您自己的訂單更多,我們可以相應地修改查詢。

+0

我只想要5,6。萬能的想法是獲得不在表中的訂單ID。 – user3209114

+0

請檢查更新的查詢,如果您面臨任何問題,請讓我知道。 –

+0

嘿它的作品對我來說,但是說我有1000個訂單ID,你有更好的解決方案嗎? – user3209114