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

Mengembalikan hasil kueri dalam urutan yang telah ditentukan sebelumnya

Saya tidak berpikir ini mungkin, tetapi menemukan entri blog di sini yang sepertinya melakukan hal yang Anda cari:

SELECT id FROM table WHERE id in (7,2,5,9,8) 
ORDER BY FIND_IN_SET(id,"7,2,5,9,8");

akan memberikan hasil yang berbeda untuk

SELECT id FROM table WHERE id in (7,2,5,9,8) 
ORDER BY FIND_IN_SET(id,"8,2,5,9,7");

FIND_IN_SET mengembalikan posisi id dalam argumen kedua yang diberikan padanya, jadi untuk kasus pertama di atas, id dari 7 berada di posisi 1 di set, 2 di 2 dan seterusnya - mysql secara internal bekerja seperti

id | FIND_IN_SET
---|-----------
7  | 1
2  | 2
5  | 3

lalu order dengan hasil FIND_IN_SET .



  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 saya bisa menunjukkan waktu kueri di Perl, DBI?

  2. Bagaimana cara mengambil beberapa baris dari prosedur tersimpan di MySQL?

  3. PHP/MYSQL Bergabung dengan beberapa tabel

  4. Bagaimana saya bisa daftar memiliki data id yang sama dengan loop sementara di PHP?

  5. Tabel MyISAM dan InnoDB dalam satu database