容易出问题是:limit n子句的位置,要位于order by desc子句的后面。
用惯了access mssql server的朋友,可能在用mysql查询前N条记录时,习惯的使用select top n 形式的语句,在这里说明一下,mysql没有此语法,mysql用limit来实现相关功能而且功能更加强大。以下是limit在mysql中的使用详解:
语法:
SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offset
LIMIT 子句可以被用于强制 SELECT 语句返回指定的记录数。LIMIT 接受一个或两个数字参数。参数必须是一个整数常量。
如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目。
初始记录行的偏移量是 0(而不是 1): 为了与 PostgreSQL 兼容,MySQL 也支持句法: LIMIT # OFFSET #。
mysql> SELECT * FROM table LIMIT 5,10; // 检索记录行 6-15 ,注意,10为偏移量 php程序员站
//为了检索从某一个偏移量到记录集的结束所有的记录行,可以指定第二个参数为 -1:
mysql> SELECT * FROM table LIMIT 95,-1; // 检索记录行 96-last.
//如果只给定一个参数,它表示返回最大的记录行数目:
mysql> SELECT * FROM table LIMIT 5; //检索前 5 个记录行 //也就是说,LIMIT n 等价于 LIMIT 0,n。
如果你想得到最后几条数据可以多加个 order by id desc
--------------------------------------------------------------------------------------------------------
select * from tablename order by orderfield desc/asc limit position, counter;
position 指示从哪里开始查询,如果是0则是从头开始,counter 表示查询的个数
取前15条记录:
select * from tablename order by orderfield desc/asc limit 0,15
分享到:
相关推荐
sql语句中select top n与oracle的rownum与mysql的limit 取前几条数据sql简单用法
MySQL中GROUP BY分组取前N条记录实现 mysql分组,取记录 GROUP BY之后如何取每组的前两位下面我来讲述mysql中GROUP BY分组取前N条记录实现方法。 这是测试表(也不知道怎么想的,当时表名直接敲了个aa,汗~~~~): ...
MySQL分组排序求Top N是数据库查询中一种常见的需求,特别是在数据分析、报表生成或数据挖掘等场景中。本文将深入探讨这一主题,帮助你理解如何在MySQL中有效地实现这一功能。 首先,我们要明白分组(GROUP BY)和...
本篇文章将探讨如何在Oracle数据库中实现类似MySQL的`LIMIT`分页功能,以及如何模拟SQL Server的分页方式,并介绍`INTERSECT`和`MINUS`这两个SQL运算符。 首先,`INTERSECT`运算符用于找出两个或多个查询结果中的...
以下是针对Oracle、MySQL、SQL Server和DB2这四种常见数据库系统的分页实现方案的详细说明: 1. Oracle数据库: Oracle采用的是ROWNUM伪列来实现分页。以下是一个基本的分页查询示例: ```sql SELECT * FROM ( ...
- `SELECT TOP 10 * FROM 数据表 WHERE 字段名 = 字段值 ORDER BY 字段名 [DESC]`:这是SQL Server的语法,但在MySQL中,你可以使用`LIMIT 10`来获取前10条匹配的记录。 - `SELECT * FROM 数据表 WHERE 字段名 IN...
在 MySQL 中实现分页查询通常有两种方法:`LIMIT` 和 `NOT IN` 方法。 1. **LIMIT 方法**: ```sql SELECT * FROM book LIMIT M, N; ``` - **解释**:此语句从第 M+1 行开始返回 N 条记录。 - **示例**:假设...
本文将详细介绍Oracle、MySQL以及SQL Server三种主流数据库系统中的分页技术,包括它们各自的实现方法和一些实用技巧。 ### 一、Oracle 分页 Oracle数据库提供了强大的功能来支持分页查询。在Oracle中,主要使用`...
MySQL中的SELECT语句是SQL语言的核心,用于从数据库中检索数据。本文将深入探讨在MySQL中SELECT语句的使用,包括条件筛选、指定筛选和分组显示查询。 ### 一、条件筛选 条件筛选允许我们根据特定的标准来过滤数据...
在MySQL中,可以用 Limit 来查询第 m 列到第 n 列的记录,例如: 代码如下:select * from tablename limit m, n但是,在SQL Server中,不支持 Limit 语句。怎么办呢?解决方案:虽然SQL Server不支持 Limit ,但是它...
- `TOP n PERCENT` 表示返回总行数的百分比 n 的数据。 - 示例: - `SELECT TOP 2 * FROM testtable;` - `SELECT TOP 20 PERCENT * FROM testtable;` ##### (二)FROM 子句 **FROM** 子句用于指定查询的目标...
SQL Server 中实现分页主要通过`SELECT TOP`与子查询结合的方式。具体操作如下: 1. **确定起始行数**:假设我们需要获取第2页的数据,每页显示10条记录。那么起始行数为`(2-1)*10+1=11`。 2. **排除前N行**:首先...
MySql的用户管理是通过User表来实现的,添加新用户常用的方法有两个,一是在User表插入相应的数据行,同时设置相应的权限;二是通过GRANT命令创建具有某种权限的用户。其中GRANT的常用用法如下: grant all on mydb...
在 SQL Server 中,我们可以使用 TOP 关键字来实现分页技术。TOP 关键字可以指定要检索的记录数。例如,从数据库表中检索从第 M 条记录开始的 N 条记录,可以使用以下语句: ```sql SELECT * FROM ( SELECT TOP N...
在 **SQL Server** 中,可以使用 `NEWID()` 结合 `ORDER BY NEWID()` 来随机排序记录,然后通过 `TOP` 获取前 N 条记录: ```sql SELECT TOP 10 * FROM TableName ORDER BY NEWID(); ``` 在 **MySQL** 中,则是使用 ...
SELECT TOP N * FROM table_name ORDER BY column_name ) AS subquery ORDER BY column_name DESC; ``` 其中,`column_name`是你根据实际需求用于排序的字段。 分页查询在SQL Server中可以通过变量实现,如下所示...