程序人生

          撰寫生活代碼,等待編譯美好人生
          隨筆 - 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 閱讀(1284) 評論(0)  編輯  收藏 所屬分類: MySQL

          主站蜘蛛池模板: 府谷县| 新竹市| 汉阴县| 荔浦县| 南和县| 永康市| 巴彦县| 界首市| 南靖县| 巩义市| 泰顺县| 繁昌县| 香河县| 定边县| 九江市| 页游| 宣威市| 鹤峰县| 新兴县| 土默特左旗| 新沂市| 会泽县| 离岛区| 宁波市| 沐川县| 台中市| 沧州市| 衡东县| 易门县| 哈巴河县| 天津市| 昌图县| 温州市| 平遥县| 昌平区| 都江堰市| 石林| 资阳市| 江山市| 德钦县| 金乡县|