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

Saya perlu menarik data berdasarkan urutan persisnya dalam sebuah array

Idenya adalah untuk mengurutkan hasil berdasarkan posisi masing-masing dalam array. Dalam hal ini MySQL FIND_IN_SET fungsi dapat membantu Anda.

Anda dapat menambahkan urutan berikut dengan pernyataan:

ORDER BY FIND_IN_SET(car.id,'3,10,7')

Catatan: Anda perlu mengonversi pesanan ini dengan pernyataan dalam cake php mysql yang setara dengan Anda pertanyaan.

FIND_IN_SET

Contoh Masukan:

kueri:

SELECT *
FROM cars
id
2
3
4
5
6
7
8
9
10
11

Keluaran:

kueri:

SELECT *
FROM cars
WHERE cars.id IN (3,10,7)
ORDER BY FIND_IN_SET(cars.id,'3,10,7')
id
3
10
7

Periksa DEMO SQLFIDDLE di sini

Sunting:

Saya tidak tahu sintaks CAKE PHP syntax dalam membangun kueri mysql.

Tetapi Kueri yang setara di cake php mysql mungkin seperti itu:

$cars = $this->car->find('all', array(
        'conditions' => array(
            'car.id' => array(3, 10, 7)
        ),
        'limit' => 3, 
        'order' => array(FIND_IN_SET('car.id' , '3,10,7'))
    ));



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Entri duplikat untuk kunci 'PRIMARY'. Mengabaikan spasi untuk string

  2. Cara mengubah posisi MYSQL db di PHP

  3. Memuat data secara dinamis pada gulir div menggunakan php, mysql, jquery, dan ajax

  4. MySQL:tidak dapat mengakses akun root

  5. Bagaimana Anda menghindari konflik nama kolom?