程序人生

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

          [筆記]一個(gè)MySQL查詢,查詢指定ID的前一記錄,后一記錄,當(dāng)前記錄

          有些時(shí)候需要查詢給定ID的前一記錄后一記錄和ID對(duì)應(yīng)的記錄。比如一些新聞系統(tǒng)中,通過GET方法獲得文章ID需要顯示“前一篇文章”“后一篇文章” 和ID指定的文章。
          下面是我用的一種查詢方法,可能效率,如果有更好的方法,請(qǐng)給我留言,不勝感激!
          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) 評(píng)論(0)  編輯  收藏 所屬分類: MySQL


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 乌海市| 台北市| 全州县| 元氏县| 固安县| 特克斯县| 滦平县| 定日县| 沙坪坝区| 临西县| 辽宁省| 石柱| 天柱县| 肃北| 巴塘县| 郸城县| 界首市| 池州市| 上栗县| 安达市| 太白县| 政和县| 介休市| 德格县| 饶阳县| 民权县| 霍林郭勒市| 姚安县| 晋城| 闸北区| 马鞍山市| 新竹县| 江阴市| 万载县| 茌平县| 梁山县| 菏泽市| 五河县| 高碑店市| 张北县| 洛南县|