例如:
在一个=>mytable
按Salary
排序的表中(因此,ID不会按顺序排列(,
如果我知道某个员工的Id
(比如Id=75
(,有没有任何方法可以让我开始从该特定的Id (Id=75)
到下一个10选择10行UP,从而刚好在Id=75
之上结束;在mysql中?
编辑(更多信息(:
我正计划将其用于previous
&用于排序表的next
按钮。
排序表,例如:
Id=2 | Salary=150K
Id=3 | Salary=100K
Id=8 | Salary=95K
Id=25 | Salary=92K
Id=18 | Salary=90K
Id=35 | Salary=85K
Id=29 | Salary=80K
Id=53 | Salary=75K
Id=50 | Salary=70K
Id=93 | Salary=50K
Id=75 | Salary=45K <----
现在,75 was the 1st Id in the second page
,所以,在previous button
中,我有:
SELECT * FROM mytable WHERE Id > 75 ORDER BY Salary ASC
这给了我Ids=>93 to 2
、BUT的行,它们将按相反的顺序,这会打乱我的previous
&next
按钮。
因此,我提出了这个问题,Hanky Panky
将这个答案修改为:
SELECT * FROM
(SELECT * FROM myTable WHERE Id > 75 ORDER BY Salary ASC LIMIT 10)
ORDER BY Salary DESC
这正是我的想法(即getting the ASC list and then ORDERing it by DESC
(。但我在尝试时遇到了这个错误:
#1248 - Every derived table must have its own alias.
编辑(错误(:
对,这只是一件愚蠢的尝试,它总是在INT值> 75
中查找大于75的id,然后根据返回的id中的工资进行排序,这只会打乱其他一切。切换到按薪资排序。
编辑(解决方案(:
向其中一个添加别名(t1
(可以修复它
SELECT * FROM
(SELECT * FROM myTable WHERE Salary > 45000 ORDER BY Salary ASC LIMIT 10) t1
ORDER BY Salary DESC
以High -> Low
顺序显示
可能就是您询问的
SELECT * FROM usersTabLE WHERE id > 75 ORDER BY id ASC LIMIT 10
您的问题可以理解,但自相矛盾。
有没有什么方法可以让我从那个特定的id(id=75(开始选择10行向上到下一个10行,从而在id=75 结束
如果你从75岁开始,然后上升到10岁,你怎么能在75岁结束呢?如果你想要75以上的10行,你可以做
SELECT * FROM yourTable WHERE id > 75 ORDER BY id ASC LIMIT 10
如果你想要75以下的10行,你可以做
SELECT * FROM yourTable WHERE id <= 75 ORDER BY id DESC LIMIT 10
如果你仍然希望这10行按升序排列,你可以进行
SELECT * FROM(
SELECT * FROM yourTable WHERE id <= 75 ORDER BY id DESC LIMIT 10
) tempAlias ORDER BY id ASC
试试这个。。
从账单限额5,10中选择*#检索第6-15行
从账单限额9518446744073709551615中选择*#所有行
从账单限额5中选择*;#检索前5行
从产品限制10,20中选择*;
--它将留下最初的10条记录(行(,并显示从票据表的第11行到第20行
SELECT * FROM MYTABLE WHERE id <= 75 LIMIT 10
或
SELECT * FROM MYTABLE WHERE id > 75 LIMIT 10
取决于你想走哪条路