2014-09-29 74 views
1

我想知道的是在SQL查詢中有什麼方法可以找到當前ID上方或旁邊是否存在任何ID?這裏是一個更程序化的方式SQL查詢草圖:查找此ID旁邊是否有ID?

可以說,我在後有5 image attachments,我點擊number 3打開它的一個彈出窗口,現在想知道是否有其他一些aid可用,以便我可以顯示NEXT按鈕?

$current_aid = '3'; 
$pid = '313'; // Thats fixed value of post 

$query = $db->query(" 
    SELECT aid 
    FROM attachments 
    WHERE aid != '{$current_aid}' AND pid = '{$pid}' 
    ORDER BY aid DESC 
"); 

我該如何找到它?

+0

我建議你考慮使用一個ORM或活動記錄或作出與數據庫更愉快的工作。 http://www.doctrine-project.org/ || https://github.com/illuminate/database || http://propelorm.org/ – 2014-09-29 11:24:51

回答

2

查詢

SELECT aid FROM attachements WHERE aid > {$current_aid} AND pid = {$pid} ORDER BY aid DESC LIMIT 1; 

然後放在這裏你額外的查詢邏輯。

+0

謝謝托馬斯,它的工作原理。 – user2854563 2014-09-29 11:31:16

1

你可以試試這個查詢來獲取下一個和以前的鏈接

SELECT 
(SELECT aid FROM attachments WHERE aid > '{$current_aid}' AND pid = '{$pid}' LIMIT 1) 
AS next_link, 
(SELECT aid FROM attachments WHERE aid < '{$current_aid}' AND pid = '{$pid}' ORDER BY aid DESC LIMIT 1) 
AS prev_link FROM attachments 
+0

謝謝Sharma,儘管我已經選擇了托馬斯答案作爲最佳答案,但是我已經給你+1,以便花時間回答我的問題。再一次感謝你 – user2854563 2014-09-29 11:32:01