选择行

时间:2016-10-13 15:01:44

标签: mysql performance

我目前正在使用这种方式选择所选行之前和之后:

SELECT rank, id FROM (
  SELECT
    id,
    @i:=@i + 1 rank,
    @match:=IF(table.id = 50, @i, @match)
  FROM
    table t,(SELECT @i:=0, @match:=0) vars
  ORDER BY t.t_date DESC
) t2
WHERE
@match>=rank-1 AND @match<=rank+1;

正如你所看到的,我在行id = 50之前和之后选择了相等的。

问题:我正在使用IF条件创建匹配行并将其放在var中。是这样的记忆和性能效率吗?

1 个答案:

答案 0 :(得分:0)

MariaDB 10.2实现了许多窗口函数,并且有效地完成了它。

Reference