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

Cara memilih item, yang di bawah dan yang di atas di MYSQL

Berikut adalah cara lain untuk melakukannya menggunakan UNION s. Saya pikir ini sedikit lebih mudah dipahami dan lebih fleksibel daripada jawaban yang diterima. Perhatikan bahwa contoh mengasumsikan id bidang itu unik, yang tampaknya menjadi kasus berdasarkan pertanyaan Anda.

Kueri SQL di bawah ini mengasumsikan tabel Anda disebut demo dan memiliki satu id . yang unik bidang, dan tabel telah diisi dengan nilai yang Anda cantumkan dalam pertanyaan Anda.

( SELECT id FROM demo WHERE STRCMP ( 'd01', id ) > 0 ORDER BY id DESC LIMIT 1 )
UNION ( SELECT id FROM demo WHERE id = 'd01' ORDER BY id ) UNION 
( SELECT id FROM demo WHERE STRCMP ( 'd01', id ) < 0 ORDER BY id ASC LIMIT 1 ) 
ORDER BY id

Ini menghasilkan hasil berikut:b03, d01, d02 .

Solusi ini fleksibel karena Anda dapat mengubah setiap LIMIT 1 pernyataan ke LIMIT N dimana N adalah nomor apapun. Dengan begitu Anda bisa mendapatkan 3 baris sebelumnya dan 6 baris berikutnya, misalnya.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kesalahan saat memuat Modul MySQLdb 'Apakah Anda menginstal mysqlclient atau MySQL-python?'

  2. Mendapatkan kesalahan Perintah tidak sinkron, Anda tidak dapat menjalankan perintah sekarang saat menjalankan prosedur tersimpan di mysql/PHP

  3. Ubah warna font komentar di kueri MySQL Workbench

  4. Bagaimana saya bisa menyinkronkan dua tabel MySQL yang memiliki struktur yang sama dan server yang berbeda?

  5. Basis data:Cara kinerja terbaik untuk menanyakan data lokasi geografis?