从MySQL查询中返回第n条logging
我正在寻找从MySQL查询返回第2或第3或第4条logging(基于ID升序查询)
问题是,我不会知道ID,只是它是查询中的第三行。
SELECT * FROM table ORDER BY ID LIMIT n-1,1
它说从loggingn开始返回一条logging。
接受的答案是错误的1,偏移量是零索引的:
从文档 :
有两个参数,第一个参数指定要返回的第一行的偏移量,第二个参数指定要返回的最大行数。 初始行的偏移量是0(不是1):
SELECT * FROM tbl LIMIT 5,10; #检索行6-15
所以正确的查询将是
SELECT * FROM table ORDER BY ID LIMIT n-1,1
使用限制条款(添加“限制3,1”到您的查询结束只select第三行)。
这里有一些更多的信息: http : //php.about.com/od/mysqlcommands/g/Limit_sql.htm
例如“限制10,5”,则跳过第一个数字所指示的logging数,然后显示第二个数字所指示的logging数。 换句话说,就是“限制跳过,显示”。
SELECT * FROM tblTesting LIMIT 3, 6
将从第4条logging显示到第9条logging,显示总logging数6
如果你想显示降序使用DESC
SELECT * FROM tblTesting ORDER BY column_name DESC LIMIT 3, 6
如果您使用PHP来处理您的logging,那么您可以使用PHP手册中的expression式:
<?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); ?>
阅读更多的PHP手册: http : //php.net/manual/en/mysqli-result.data-seek.php