2014-04-05 136 views
1

MYTABLEMySQL查詢選擇比大於值都大於和小於

id  name  
------- -------- 
1   James 
2   John 
3   Edward 
4   Bill 

以上是我的表,我試圖建立一個查詢,可以同時比數值大於和小於選擇。例如$current_id = 3,所以我需要從一個查詢中選擇24。我可以獲取一個(小於或大於)的值,但不知道如何組合查詢來獲得兩者。

查詢

SELECT mytable.id FROM mytable WHERE id > $current_id; 

回答

3
(SELECT id 
FROM mytable 
WHERE id > $current_id 
ORDER BY id ASC 
LIMIT 1) 
UNION 
(SELECT id 
FROM mytable 
WHERE id < $current_id 
ORDER BY id DESC 
LIMIT 1) 
+0

您需要在各個查詢中添加括號以使用限制和聯盟。 – Fluffeh

+0

他要求(不清楚)只有前一個和下一個記錄 – Aris

1
SELECT mytable.id FROM mytable 
WHERE id = $current_id +1 
OR id=$current_id -1; 

這裏我們使用或門,將檢查這兩個條件,它將運行這兩個條件,如果兩者都通過它就會出現這兩個條件的結果或如果任何一個條件通過,那麼它將只顯示正在通過的條件的結果。

+0

您假設每個記錄的「id」是連續的。如果有任何行被刪除,那麼'id'字段將不會連續,這將失敗。 –