程序人生

          撰寫生活代碼,等待編譯美好人生
          隨筆 - 48, 文章 - 0, 評論 - 29, 引用 - 0
          數據加載中……

          [筆記]一個MySQL查詢,查詢指定ID的前一記錄,后一記錄,當前記錄

          有些時候需要查詢給定ID的前一記錄后一記錄和ID對應的記錄。比如一些新聞系統中,通過GET方法獲得文章ID需要顯示“前一篇文章”“后一篇文章” 和ID指定的文章。
          下面是我用的一種查詢方法,可能效率,如果有更好的方法,請給我留言,不勝感激!
          SELECT?art_id,?art_pdate
          FROM?ecos_article
          WHERE?art_id>75?limit?0,1
          UNION
          SELECT?art_id,?art_pdate
          FROM?ecos_article
          WHERE?art_id<=75?ORDER?BY?art_id?DESC?limit?0,3;
          效果如下:
          mysql> SELECT art_id, art_pdate FROM ecos_article limit 0,5;
          +--------+------------+
          | art_id | art_pdate? |
          +--------+------------+
          |???? 73 | 2005-12-01 |
          |???? 74 | 2005-12-01 |
          |???? 75 | 2005-12-01 |
          |???? 76 | 2005-12-01 |
          |???? 77 | 2005-12-01 |
          +--------+------------+

          mysql> SELECT art_id, art_pdate
          ??? -> FROM ecos_article
          ??? -> WHERE art_id>75 limit 0,1
          ??? -> UNION
          ??? -> SELECT art_id, art_pdate
          ??? -> FROM ecos_article
          ??? -> WHERE art_id<=75 ORDER BY art_id DESC limit 0,3;
          +--------+------------+
          | art_id | art_pdate? |
          +--------+------------+
          |???? 76 | 2005-12-01 |
          |???? 75 | 2005-12-01 |
          |???? 74 | 2005-12-01 |
          +--------+------------+

          posted on 2006-04-06 16:22 405 Studio 閱讀(1289) 評論(0)  編輯  收藏 所屬分類: MySQL

          主站蜘蛛池模板: 襄垣县| 定结县| 马尔康县| 湛江市| 英德市| 宜宾市| 望奎县| 腾冲县| 特克斯县| 东乌珠穆沁旗| 金乡县| 望谟县| 达日县| 安平县| 乌审旗| 广灵县| 子长县| 乌苏市| 姚安县| 临沂市| 崇礼县| 鄂托克前旗| 甘肃省| 镇坪县| 青岛市| 恭城| 乐陵市| 呼和浩特市| 开远市| 四平市| 永城市| 夏河县| 利川市| 武定县| 长宁区| 东兴市| 田东县| 定安县| 福海县| 博湖县| 呼图壁县|