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

Pilih baris bersama dengan baris berikutnya dan sebelumnya

Ini rumit, karena Anda memilih baris dengan id , tetapi memilih yang berdekatan dengan bidang lain, modified_time .

Idenya adalah menggunakan variabel untuk menghitung baris. Dan, gunakan baris lain untuk menghitung nilai id yang Anda pedulikan. Lakukan ini dalam subkueri, lalu pilih baris yang Anda inginkan:

SELECT t.*
FROM (SELECT `id`,
              @rn := if(@rnid := if(t.id  = '".id."', @rn + 1, @rnid),
                        @rn + 1, @rn + 1
                       ) as rn
      FROM {#table} t       
           "other_part_of_query" cross join
           (select @rn := 0, @rnid := 0) vars
      ORDER BY `modified_time` DESC
     ) t
WHERE rn in (@rnid - 1, @rnid, @rn)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana menemukan semua interval nilai stempel waktu setiap menit antara dua catatan stempel waktu di database sql saya

  2. program database reservasi janji dokter java (mysql)..mengalami kesulitan merancang skema janji

  3. MySQL - Baris ke Kolom

  4. dapatkan kesalahan .findOrCreate()

  5. Tidak dapat mengonversi MySQL.DateTime ke System.DateTime dengan nilai 0000-00-00 00:00:00