※ 引述《knives ()》之銘言:
: 我的DBMS是Mysql
: 我有一個相簿Table是 長這樣 picid 、pic_href
: 如果我想做輪播的話,假設我有五張圖 p1、p2、...、p5
: 假設我現在點到p3 的話,那下一張就是p4、上一張就是p2
: 如果是點到p1的話,那上一張就是p5,反之p5的下一張就是p1
: 因為我希望一次照順序列出來放在陣列供js使用
: 不必說要等到按下按鈕再來抓下一張是誰
: 這樣的話,陣列的順序就要一次決定
: 我原本是想說執行三次sql
: SELECT * FROM pic WHERE picid<'目前的picid'
: SELECT * FROM pic WHERE picid='目前的picid'
: SELECT * FROM pic WHERE picid>'目前的picid'
: 再丟到陣列上,可是這樣要執行三次sql,不知道有沒有方法做一次就好了
: 謝謝回答
在沒有碰到邊界的情況下
SELECT * FROM pic WHERE picid = 'givenID'
OR picid = 'givenID-1' OR picid = 'givenID+1' ;
有碰到邊界的狀況無解,不過也才兩個例外而已。
SQL沒辦法知道是不是最後一筆...所以就請先SELECT MAX 和 MIN出來檢查。
--
※ 發信站 :批踢踢實業坊(ptt.cc)
◆ From: 122.146.228.192
※ 編輯: musie 來自: 122.146.228.192 (10/14 15:42)