Re: [SQL ] 選取特定主鍵跟其下一筆之外的資料
※ 引述《JYHuang (夏天到了,冷不起來了說)》之銘言:
: 再將starjou兄的語法做延伸
: 選出table中指定 id 值和其上下一筆的資料
: SELECT A.id FROM news AS A LEFT JOIN
: (SELECT id FROM news WHERE id >=
: (select IFNULL(max(id),10) from news where id <10 )
: ORDER BY id LIMIT 3) AS B
: ON A.id = B.id WHERE B.id IS NULL
: 在一個有16筆資料的資料表中查詢
: 花費0.0005 秒(一般查詢 約0.0003 sec)
其實解法很簡單耶@@:
假設你的目標id是Q (某數字)
則:
1、選出Q及Q的上一筆和下一筆資料:
select * from news where ABS(id-Q)<=1
2、選出Q及其上下一筆「以外」的資料:
select * from news where ABS(id-Q)>1
3、選出Q及其下一筆「以外」的資料:
select * from news where id<Q or id>(Q+1)
4、選出Q及其上一筆「以外」的資料:
select * from news where id>Q or id<(Q-1)
都是一行解決…
ps. ABS函數就是取其絕對值...
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.166.139.138
推
06/25 22:13, , 1F
06/25 22:13, 1F
→
06/25 22:20, , 2F
06/25 22:20, 2F
推
06/25 22:53, , 3F
06/25 22:53, 3F
推
06/25 22:57, , 4F
06/25 22:57, 4F
→
06/26 00:05, , 5F
06/26 00:05, 5F
推
06/26 00:10, , 6F
06/26 00:10, 6F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 6 之 7 篇):