Mysql SQL order by在超过
我正在尝试使用SQL对结果进行排序Mysql SQL order by在超过,mysql,sql,Mysql,Sql,我正在尝试使用SQL对结果进行排序 id | name (table name: student) ----- 1 | jhon 2 | amin 3 | heli 4 | mir 5 | mrs 6 | amr 7 | jonnathan 8 | adhy 当我使用这个查询时 select id from studenth where id>='3' order by id DESC limit 2 出现的结果是 id | name (table name: student) ---
id | name (table name: student)
-----
1 | jhon
2 | amin
3 | heli
4 | mir
5 | mrs
6 | amr
7 | jonnathan
8 | adhy
当我使用这个查询时
select id from studenth where id>='3' order by id DESC limit 2
出现的结果是
id | name (table name: student)
-----
8 | adhy
7 | jonnathan
虽然我希望在id=3之后对结果进行排序,但我希望数据如下所示
id | name (table name: student)
-----
4 | mir
3 | heli
你可以做一些类似的事情:
select * from student where id>=3 order by id LIMIT 2
如果您想获取记录并按降序对其排序,那么可以进行子查询
SELECT * FROM
( SELECT *
FROM student
WHERE id>=3 ORDER BY id LIMIT 2) X
ORDER BY X.id DESC
您的查询有问题
select * from student where id>='3' order by id DESC limit 2
上述查询将获取id=3或更多的所有结果,并按降序排列,而LIMIT 2
仅显示2条记录
这就是它显示最后2条记录的原因。删除此
id>='3'中的单引号。
select id from student where id>=3 order by id desc limit 2
更新1:
select * from student where id>=3 order by id LIMIT 2
按描述排序限制2这里的问题使用子查询获取结果,然后应用降序
select * from (select id from student where id >= 3 order by id limit 2) new order by new.id desc
您可以使用此查询。您希望所有值都小于或等于4,而不是3之后的值
select id from student where id<='4' order by id DESC limit 2
从student中选择id,其中id如果我理解正确,您希望从id+1记录中按降序排列数据。查询应如下所示:
select id from studenth where id<='4' order by id DESC limit 2;
从studenth中选择id,其中id尝试此方法使用子查询很容易理解并满足您的要求:
SELECT id, name
FROM studenth
WHERE id IN (SELECT id
FROM studenth
WHERE id >= 3 ORDER BY id LIMIT 2) ORDER BY id DESC
请尝试以下方法
SELECT id,
name
FROM tblTable
WHERE id >= 3
ORDER BY id DESC
LIMIT ( ( SELECT COUNT( * )
FROM tblTable
WHERE id >= 3 ) - 1 ), 2;
此语句根据id
的值对tblTable
中的记录进行排序。然后使用LIMIT
从排序列表中选择特定记录。如果存在20
eligibnle记录,则等于LIMIT 19,2
,这将给出第19条和第20条记录
如果您有任何问题或意见,然后请随时发表相应的评论。删除“id”中的单引号,并按asc limit 2try my answer@Adhy MusaadI将数据从largest@AdhyMusaad如果您只想使用id=3和4的记录,则使用“仅按id排序”和“限制2”。@ADHYMUSAD您想使用id=3和id=4这两条记录,然后然后按降序排序?在这种情况下,这将给出预期的结果;但是您必须找到一个使用id“3”来保持OP逻辑的查询“r”是什么意思?以前从未在sql查询中见过。它实际上是'as r','as'被省略。