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

Doctrine 2 fungsi mysql FIELD diurutkan berdasarkan

Jeremy Hicks, terima kasih atas ekstensi Anda .Saya tidak tahu bagaimana menghubungkan fungsi Anda dengan doktrin, tetapi akhirnya saya menemukan jawabannya.

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

Saya membutuhkan FIELD berfungsi untuk memesan Entitas saya yang saya pilih dengan IN ekspresi. Tetapi Anda dapat menggunakan fungsi ini hanya di SELECT, WHERE, BETWEEN klausa, bukan dalam ORDER BY .

Solusi:

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

Untuk menghindari penambahan field alias ke baris hasil Anda, Anda perlu memasukkan HIDDEN kata kunci. Jadi begini cara mengurutkan nilai dalam IN ekspresi dalam Doktrin 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. Panduan Merancang Database Untuk Sistem Pemesanan Restoran Di MySQL

  2. Cara Menambahkan Hari ke Tanggal di MySQL

  3. Mengakhiri koneksi mysql yang menganggur

  4. Apa artinya ketika MySQL dalam keadaan Mengirim data?

  5. Panduan Merancang Database Untuk Manajemen Blog Di MySQL