Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Mysql Codeigniter Active Record - Làm cách nào để thực hiện truy vấn where_in và trả về thứ tự kết quả chính xác?

Để sắp xếp kết quả theo thứ tự trong mảng của bạn, bạn có thể làm như sau:

$array_of_ordered_ids = array(4,5,2,6);

Như bạn đã biết thứ tự của các con số, bạn có thể sử dụng Mysql FIELD() chức năng:

ORDER BY FIELD(id, 4, 5, 2, 6);

Để tạo một chuỗi như vậy, bạn có thể sử dụng implode :

$order = sprintf('FIELD(id, %s)', implode(', ', $array_of_ordered_ids));

Hãy thử:

$array_of_ordered_ids = array(4,5,2,6);
$this->db->where_in('id', $array_of_ordered_ids);
$order = sprintf('FIELD(id, %s)', implode(', ', $array_of_ordered_ids));
$this->db->order_by($order); 


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Xuất cơ sở dữ liệu thông qua mã java của tôi

  2. Truy xuất thứ bậc cha-con từ bảng mysql tự tham chiếu

  3. CHÈN MYSQL hoặc CẬP NHẬT NẾU

  4. Cách hoạt động của hàm UCASE () trong MySQL

  5. Loại trường cơ sở dữ liệu tốt nhất cho một URL