简体   繁体   English

MySQL选择*其中NUM_ROW> X

[英]MySQL Select * Where NUM_ROW > X

I have table clients 我有桌客

+------+------+------------+
|  id  | name | company_id |
+------+------+------------+
|  1   | Test |     1      |
+------+------+------------+

When I want to select (for example) first 30 clients it all all right. 当我想选择(例如)前30个客户端时,一切正常。

SELECT
  id,
  name
FROM client
WHERE company_id = 1
LIMIT  30;

But I don't now to select second 30, third 30. My way to solve: 但是我现在不选择第二个30,第三个30。我的解决方法是:

SET @row_num=0
SELECT
  @row_num:=@row_num+1 AS row_number,
  id,
  name
FROM client
WHERE company_id = 1
AND row_number = 20;
LIMIT  30;

There is errror: Unknown column 'row_number' in 'where clause'. 有一个错误:'where子句'中的未知列'row_number'。 How to solve it? 怎么解决呢?

Look at the LIMIT OFFSET syntax 查看LIMIT OFFSET 语法

What if we want to select records 16 - 25 (inclusive)? 如果我们想选择记录16-25(含)怎么办?

Mysql also provides a way to handle this: by using OFFSET. Mysql还提供了一种解决方法:使用OFFSET。

The SQL query below says "return only 10 records, start on record 16 (OFFSET 15)": 下面的SQL查询显示“仅返回10条记录,从记录16开始(偏移15)”:
$sql = "SELECT * FROM Orders LIMIT 10 OFFSET 15";

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM