Mysql
 sql >> база данни >  >> RDS >> 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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Грешка:свържете ECONNREFUSED при достъп до mysql

  2. Node.js ssh2 тунел поддържа жив и изпълнява mysql заявки

  3. Инициализаторът на типа за 'System.Data.Entity.Migrations.DbMigrationsConfiguration`1' хвърли изключение

  4. mysql :цикъл над таблици и промяна на таблицата, добавяне на индекс

  5. Отмяната на Mysqli не работи