sql >> Database >  >> RDS >> Mysql

Mysql selecteer rij wanneer kolomwaarde is gewijzigd

MySQL user defined variables zou je in dit geval helpen.

Telkens wanneer u een nieuwe status ziet, wijst u 1 toe als rijnummer naar de corresponderende rij.

En als u dezelfde status ziet als in de vorige rij, wijst u in plaats daarvan een verhoogd rijnummer toe.

Op deze manier kunt u eindelijk de records filteren met row number = 1 enkel en alleen. Deze specifieke records laten eigenlijk een verschil zien in vergelijking met hun direct vorige rij

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. Hoe Trigger uitschakelen in Oracle SQL Developer?

  2. Hoe WordPress te installeren:de serversoftware

  3. Hoe een vergelijkbare waarde in Oracle te krijgen?

  4. MYSQL dubbele sleutel werkt niet