Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Mysql pilih baris ketika nilai kolom berubah

MySQL user defined variables akan membantu Anda dalam kasus ini.

Setiap kali Anda melihat status baru, tetapkan 1 sebagai nomor baris ke baris yang sesuai.

Dan jika Anda melihat status yang sama dengan yang Anda lihat di baris sebelumnya, tetapkan nomor baris yang bertambah sebagai gantinya.

Dengan cara ini Anda akhirnya dapat memfilter catatan yang memiliki row number = 1 hanya. Catatan khusus ini sebenarnya menunjukkan perbedaan dibandingkan dengan baris sebelumnya langsung

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. Mempercepat sejumlah besar pembaruan dan penyisipan mysql

  2. Pengecualian 'PDOException' yang tidak tertangkap dengan pesan 'Tidak ada transaksi aktif'?

  3. Cara membuat kueri di Drupal 8

  4. Karakter Unicode menjadi tanda tanya setelah dimasukkan ke dalam database

  5. MySQL memberikan baris seumur hidup