【MySQL 如何处理查询中的排序和限制?
在 MySQL 中, LIMIT 子句与 SELECT 语句一起使用,以限制结果集中的行数。Limit 子句接受一个或两个偏移量和计数的参数。这两个参数的值可以是零或正整数。
限制条款:
语法:
选择列 1,列 2,…
从表名
极限偏移量,计数;
Limit 子句接受一个或两个参数,每当指定两个参数时,第一个参数是偏移量,第二个参数表示计数,而每当只指定一个参数时,它表示从结果集开始返回的行数。
- 偏移量:用于指定要返回的第一行的偏移量。
- 计数:用于指定要返回的最大行数。
使用 MySQL 中的 LIMIT 和 ORDER BY 语句进行选择:
语法:
选择表达式
来自表格
[哪里的条件]
[按表达式排序[美国汽车工程师协会| DESC ]]
限制行数;
- 表达式:要检索的列或计算。
- 表:您希望从中检索记录的表。FROM 子句中必须至少列出一个表。
- WHERE 条件:这些是要选择的记录必须满足的可选条件。
- ORDER BY 表达式:这些是可选语句,用于以升序或降序返回结果。
- LIMIT row_count_number: 根据 row_count_number 指定要返回的行数。
让我们用一个例子来理解这个语法。假设我们有关系,学生。
在 MySQL 中创建数据库:
查询:
-- create
CREATE TABLE Student (
Id INTEGER PRIMARY KEY,
name TEXT NOT NULL,
score Number NOT NULL,
branch TEXT
);
将数据插入表格:
查询:
-- insert
INSERT INTO Student VALUES (55, 'Bhargavi', '81','civil');
INSERT INTO Student VALUES (56, 'Nikita', '75','IT');
INSERT INTO Student VALUES (57, 'Riddhi', '100','CSE');
INSERT INTO Student VALUES (58, 'Shreya', '94','civil');
输出:
查询:
SELECT * FROM Student ORDER BY Score DESC LIMIT 2;
输出:
LIMIT 运算符可用于上述情况,我们需要找到得分最高的前 2 名学生,并且不想使用任何条件语句。ORDER BY Score DESC 以降序对记录进行了排序,使用 LIMIT 2,我们获得了排序结果的前 2 行。
在上面的例子中,我们也可以使用 WHERE 子句包括一些情况。假设我们不希望结果集中有 Civil 分支,希望前 2 名学生的分数较低。
我们可以编写如下查询:
查询:
SELECT * FROM Student WHERE Branch != 'Civil' ORDER BY Score LIMIT 2;
输出:
上面的查询将根据强加的条件选择所有学生(即,除了土木工程系学生之外的所有学生都将被选择),然后结果将按分数升序排序(默认情况下,ORDER BY 关键字按升序排序记录)。最后,上面的查询将返回前 2 行。
版权属于:月萌API www.moonapi.com,转载请注明出处