Danny 發問時間: 電腦與網際網路程式設計 · 7 年前

關於mysql 指某筆至最後一筆

請問站上的各位大大們,我想要mysql指定某筆至最後一筆,我該如何做?

就是說我現在資料表裡有100筆資料,這100筆資料的id是自動編號,

但我想從第2筆開始查詢到第100筆,跳過第一筆資料開始查詢。

例如:我的id是自動編號,但我mysql_fetch_assoc輸出的時候想要跳過資料表的第一筆資料直接從第2筆資料開始詢到最後一筆資料,我該如何做?

我在網路上有查到select * from table order by desc limit 1, -1這個語法,不過都會執行錯誤,再請站上的各位高手們為我解惑。

想請各位大大們提供簡單的範列語法讓我參考,小的在此感激不盡了。^_^

1 個解答

評分
  • ?
    Lv 5
    7 年前
    最佳解答

    先貼上MYSQL SELECT使用方法:

    SELECT [STRAIGHT_JOIN] [SQL_SMALL_RESULT] [DISTINCT | ALL]

    select_expression,...

    [INTO OUTFILE 'file_name' export_options]

    [FROM table_references

    [WHERE where_definition]

    [GROUP BY col_name,...]

    [HAVING where_definition]

    [ORDER BY {unsigned_integer | col_name} [ASC | DESC] ,...]

    [LIMIT [offset,] rows]

    [PROCEDURE procedure_name] ]

    你的limit 1, -1怎麼看怎麼怪,從1開始共要抓-1筆資料...

    而且desc是逆排序(從大到小),asc才是正排序(從小到大)。

    假設抓某個table全部資料,使用id排序,而且是從小到大,第一筆跳過,下面有兩個方法,不管有多少筆你要的結果都適用:

    第一個方法(使用limit):

    1.先下個SQL去count你要查的總筆數,查詢結果如果為n

    select count(*) from table

    2.再下個含limit的SQL,就會從第二筆開始共取n-1筆

    select * from table order by id asc limit 1, n-1

    第二個方法(變數判斷),只是大概寫一下你應該懂:

    i=1;

    for(執行 select * from table order by id asc 迴圈) {

    if(i==1) {

       不做任何事

    }

    else {

       從第二筆之後要做的事

       ...

    }

    i=i+1;

    }

    參考資料: 自己
還有問題?馬上發問,尋求解答。