2010-02-08 67 views

回答

72

SELECT * FROM table ORDER BY ID LIMIT n-1,1

它說,返回一條記錄開始結果N。

+1

似乎已經做的伎倆!非常感謝 – paulrandall 2010-02-08 21:27:42

+4

我已經將它更改爲n,1到n-1,1,因爲偏移從0開始,而不是1。因爲這是一個可接受的答案,所以向用戶提供正確的詳細信息。 – 2015-09-02 07:07:56

6

使用限制條款(將限制3,1添加到查詢的末尾以僅選擇第三行)。

這裏的一些信息:http://php.about.com/od/mysqlcommands/g/Limit_sql.htm

+1

這將是限制2,因爲它是0索引。 – Loren 2017-01-06 16:10:52

+0

謝謝。良好的解釋 – 2017-10-12 06:15:13

25

接受的答案是錯了1,偏移量是零索引:

doc

在有兩個參數,第一個參數指定要返回的第一行的偏移量,第二個指定要返回的最大數量的行數。初始行的偏移量爲0(不是1):

SELECT * FROM tbl LIMIT 5,10; #檢索行6-15

因此正確的查詢是

SELECT * FROM table ORDER BY ID LIMIT n-1,1 
+1

糾正它+1 – 2015-09-02 07:08:54

3

例如「LIMIT 10,5」,它會跳過由第一個數字表示的記錄數,然後顯示第二個數字表示的記錄數。換句話說,它是「限制跳過,顯示」。

SELECT * FROM tblTesting LIMIT 3, 6 

將顯示來自4日記錄到第9條記錄,共記錄顯示6

,如果你想顯示如果您使用PHP來處理您的記錄降序使用DESC

SELECT * FROM tblTesting ORDER BY column_name DESC LIMIT 3, 6 
+0

更好地解釋答案(至少它在這方面對我更有意義)。 – HPWD 2017-05-17 01:09:55

0

,然後您可以使用PHP手冊中的表達式:

<?php 
/* Open a connection */ 
$link = mysqli_connect("localhost", "my_user", "my_password", "world"); 

/* check connection */ 
if (!$link) { 
    printf("Connect failed: %s\n", mysqli_connect_error()); 
    exit(); 
} 

$query = "SELECT Name, CountryCode FROM City ORDER BY Name"; 

if ($result = mysqli_query($link, $query)) { 

    /* seek to row no. 400 */ 
    mysqli_data_seek($result, 399); 

    /* fetch row */ 
    $row = mysqli_fetch_row($result); 

    printf ("City: %s Countrycode: %s\n", $row[0], $row[1]); 

    /* free result set*/ 
    mysqli_free_result($result); 
} 

/* close connection */ 
mysqli_close($link); 
?> 

Read mor E在PHP手冊:http://php.net/manual/en/mysqli-result.data-seek.php

0

MYSQL:偏移總是從開始零索引

OFFSET值是指未從OFFSET值

實施例開始:記錄1,2,3,4, 5。

OFFSET 1個裝置返回第二值,如OFFSET 2返回第三值等

SELECT table_column FROM表GROUP BY table_column DESC LIMIT 1 OFFSET 1;

SELECT table_column FROM Table GROUP BY table_column DESC LIMIT 3 OFFSET 1;

它將返回3條第2記錄