请教一个 sql
查 cc 表, 根据 time 排序后,获取 aid = xxx 之后的数据
比如排序后的总数据是这样子 [ {aid: 'a'}, {aid: 'b'}, {aid: 'c'}, ... ]
我要 aid = 'b' 之后的数据 [{aid: 'c'}, ...]
请教一个 sql
查 cc 表, 根据 time 排序后,获取 aid = xxx 之后的数据
比如排序后的总数据是这样子 [ {aid: 'a'}, {aid: 'b'}, {aid: 'c'}, ... ]
我要 aid = 'b' 之后的数据 [{aid: 'c'}, ...]
|
hay0577Mar 14, 2022
1
要个 sql 语句???
|
|
sadfQED2Mar 14, 2022 via Android
2
你直接发一条数据 demo 上来,我给你写条 sql
|
|
3
@hay313955795 是滴是滴
|
|
4
[
{aid: '47BUB4lwDXS', time: 1647233521466, name: 'ppp'}, {aid: '47BUB4lwDCS', time: 1647233521467, name: 'qqq'}, {aid: '47BUB4lwCAS', time: 1647233521466, name: 'sss'}, {aid: '47BUB4lQDXS', time: 1647233521462, name: 'ggg'}, ] SELECT * from idx 这样,根据 time 倒序后,获取 aid 为 47BUB4lwCAS 之后的数据 |
|
5
@sadfQED2
[ {aid: '47BUB4lwDXS', time: 1647233521466, name: 'ppp'}, {aid: '47BUB4lwDCS', time: 1647233521467, name: 'qqq'}, {aid: '47BUB4lwCAS', time: 1647233521466, name: 'sss'}, {aid: '47BUB4lQDXS', time: 1647233521462, name: 'ggg'}, ] SELECT * from idx 这样,根据 time 倒序后,获取 aid 为 47BUB4lwCAS 之后的数据 |
|
F281M6Dh8DXpD1g2Mar 14, 2022
6
rank 之后取比那条的 rank 大的完事
|
|
7
或者说,除了 limit ,还有其他方式在查询时候跳过指定条数据吗,比如在排序后跳过 3000 条,从第 3001 条开始查询,存在这种关键字吗
|
|
sqfphoenixMar 14, 2022
8
select * from idx where time > (select time from idx where aid = 'xxx')
瞎写的不知道对不对大概就这个意思吧 |
|
9
@sqfphoenix time 可能存在相同值 >_<,怪我没说清楚
|
|
10
@bobo2 不太明白,是指多个 aid 有同一个 time 吗,那对于同一个 time 来说传入的 aid 不同得到的结果也不同,这个业务逻辑是有问题的吧
如果说只要排除自己只要改成 select * from idx where time >= (select time from idx where aid = 'xxx') and aid <> 'xxx'就可以了吧 |
|
11
@sqfphoenix 对的,我改用 rownum 做了
|
|
spLiteMar 14, 2022
12
select * from (select * from idx order by time)t
where t.aid>'47BUB4lwCAS '; |
|
rocbyteMar 14, 2022
13
1.先找到 aid="47BUB4lwCAS" 这条数据的时间
2.然后用 找到的时间作为条件查询,并倒序排序 select * from idx where time<= 1647233521466 order by time desc |
|
CodelikeMar 14, 2022
14
@sqfphoenix 不等于也不对。还是 select * from idx where time >= (select time from idx where aid = 'xxx') ,然后在逻辑里面再去掉 aid='xxx'和它之前的数据
|
|
15
哈哈,原来真的是前端对后端表示无力,后端对前端表示无力
|
|
MrTLJHMar 14, 2022
16
|