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

Hàm FIELD của Doctrine 2 theo thứ tự

Jeremy Hicks, cảm ơn vì tiện ích mở rộng của bạn . Tôi không biết cách kết nối chức năng của bạn với học thuyết, nhưng cuối cùng tôi cũng tìm ra câu trả lời.

$doctrineConfig = $this->em->getConfiguration();
$doctrineConfig->addCustomStringFunction('FIELD', 'DoctrineExtensions\Query\Mysql\Field');

Tôi cần FIELD chức năng sắp xếp các Đối tượng mà tôi chọn bằng IN biểu hiện. Nhưng bạn chỉ có thể sử dụng chức năng này trong SELECT, WHERE, BETWEEN , không có trong ORDER BY .

Giải pháp:

$qb
            ->select("r, field(r.id, " . implode(", ", $ids) . ") as HIDDEN field")
            ->from("Entities\Round", "r")
            ->where($qb->expr()->in("r.id", $ids))
            ->orderBy("field");

Để tránh thêm trường field bí danh vào hàng kết quả của bạn, bạn cần đặt HIDDEN từ khóa. Vì vậy, đây là cách để có thể sắp xếp các giá trị trong IN biểu thức trong Doctrine 2.2.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mysql có tương đương với @@ ROWCOUNT như trong mssql không?

  2. Cách đọc tệp nhật ký nhị phân MySQL (BinLog) với mysqlbinlog

  3. Cách lấy dữ liệu tuần trước trong MySQL

  4. Cách trả về kết quả truy vấn dưới dạng danh sách được phân tách bằng dấu phẩy trong MySQL

  5. Kích hoạt hỗ trợ MySQL InnoDB Storage Engine trong cài đặt XAMPP