Mysql 使用引用从同一表中选择行

Mysql 使用引用从同一表中选择行,mysql,Mysql,我有一个名为tblA的表。我有以下一组值 ID REF --------- 1 ASD 2 null 3 null 4 null 5 FGH 6 null 现在我正在尝试获取第1行到第4i行。即起始行将是ref列中具有值“ASD”的行,最后一行将是ref列中具有一些值的行前面的行,如“FGH” 我试过使用between关键字,但我没有弄好。有什么办法吗 可以使用排名法: sele

我有一个名为tblA的表。我有以下一组值

ID    REF     
---------
1     ASD    
2     null    
3     null    
4     null    
5     FGH     
6     null     
现在我正在尝试获取第1行到第4i行。即起始行将是ref列中具有值“ASD”的行,最后一行将是ref列中具有一些值的行前面的行,如“FGH”


我试过使用between关键字,但我没有弄好。有什么办法吗

可以使用排名法:

select * from(
SELECT @rank :=  IF(@prevVal<>ref or ref is null,@rank, @rank+1) AS rank, 
       id,ref,
@prevVal:=ref
FROM   scores
, 
       (SELECT @rank := 0,@prevVal:=null) r 
order by id) m
where m.rank=1

可以使用排名法:

select * from(
SELECT @rank :=  IF(@prevVal<>ref or ref is null,@rank, @rank+1) AS rank, 
       id,ref,
@prevVal:=ref
FROM   scores
, 
       (SELECT @rank := 0,@prevVal:=null) r 
order by id) m
where m.rank=1
这应该对你有用


这应该对您有用。

再做一次澄清。这里我们需要指定秩值,即如果设置为1,将显示第1行到第4行,但我可能还需要获取该行下方的FGH和null值行。我将动态传递引用。基于此,将生成结果。我尝试在设置秩值时添加ref值,但它不正确。请帮助。您可以更改到m.rank在1和2之间的位置,我尝试过,但结果与上面所说的相同。上面给出的表中的行是示例行。我可能有多个类似于上表中给出的引用。例如,如果我将ASD作为输入,它应该从ASD提取到ref列中的下一个非空行。因此,我无法明确指定秩值,它应该是动态的,基于作为输入发送的ref。为了检索行基于ASD的价值。必须再次将自身连接到表中才能检索值。这里是fiddle[link]的另一个澄清选项。这里我们需要指定秩值,即如果设置为1,将显示第1到4行,但我可能还需要获取该行下方的FGH和null值行。我将动态传递引用。基于此,将生成结果。我尝试在设置秩值时添加ref值,但它不正确。请帮助。您可以更改到m.rank在1和2之间的位置,我尝试过,但结果与上面所说的相同。上面给出的表中的行是示例行。我可能有多个类似于上表中给出的引用。例如,如果我将ASD作为输入,它应该从ASD提取到ref列中的下一个非空行。因此,我无法明确指定秩值,它应该是动态的,基于作为输入发送的ref。为了检索行基于ASD的价值。必须再次将自身连接到表中才能检索值。这是小提琴[链接]