您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

当列值更改时MySQL选择行

当列值更改时MySQL选择行

MysqL user defined variables 在这种情况下会为您提供帮助。

每次看到新状态时,将1行号分配给相应的行。

并且,如果您看到的状态与上一行相同,请分配一个递增的行号。

这样,您最终可以过滤row number = 1仅包含的记录。这些特定记录实际上与其前一行相比显示出差异

SELECT 
*
FROM 
(
 SELECT 
  *,
  IF(@prevStatus = YT.status_1, @rn := @rn + 1,
    IF(@prevStatus := YT.status_1, @rn := 1, @rn := 1)
  ) AS rn
 FROM your_table YT
 CROSS JOIN 
 (
  SELECT @prevStatus := -1, @rn := 1
 ) AS var 
 ORDER BY YT.ID
) AS t
WHERE t.rn = 1
ORDER BY t.ID
MySQL 2022/1/1 18:39:08 有395人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶