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

Memilih baris 'berikutnya' dengan kriteria khusus di MySQL

Permintaan asli Anda agak pintar. Berikut adalah pendekatan yang sedikit berbeda. Itu mendapatkan area berikutnya dalam subquery (menggunakan subquery yang berkorelasi seperti pada contoh Anda). Kemudian menghitung baris di mana kondisinya benar:

select sum(case when area = 'Front' and nextarea = 'Back' then 1 else 0 end)
from (SELECT t1.*,
             (SELECT t2.area 
              FROM table t2 
              where t2.order > t1.order
              order by t2.order
              limit 1
             ) as nextarea 
FROM table t1;

Permintaan ini lebih mahal dari milik Anda. Anda dapat menggunakan kondisi kesetaraan yang bagus pada order kolom. Di sini, pengurutan diperlukan dengan limit untuk mendapatkan nilai selanjutnya. Indeks gabungan pada (order, area) akan membantu kinerja.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL XDevAPI Cara mengembalikan status sukses

  2. Lihat apakah lat / long termasuk dalam poligon menggunakan mysql

  3. Kelas / kode koneksi PDO dan desain kelas

  4. Impor batas ukuran file di PHPMyAdmin

  5. MySQL CAST – Cara Mengetik Cast di MySQL