Rumah > Artikel > pangkalan data > Bagaimana Memesan Keputusan Menggunakan Fungsi FIELD MySQL dalam Doktrin 2?
Pemesanan mengikut Fungsi MySQL FIELD dalam Doktrin 2
Doktrin 2 tidak menyokong fungsi MySQL FIELD secara asli di luar kotak. Untuk menggunakannya, anda boleh memanfaatkan fungsi rentetan tersuai yang disediakan oleh sambungan.
Penyelesaian DoctrineExtensions:
Pustaka DoctrineExtensions termasuk fungsi rentetan tersuai bernama 'FIELD' yang meniru Fungsi MySQL FIELD. Untuk melaksanakan ini, tambahkan konfigurasi berikut:
<code class="php">$doctrineConfig = $this->em->getConfiguration(); $doctrineConfig->addCustomStringFunction('FIELD', 'DoctrineExtensions\Query\Mysql\Field');</code>
Penggunaan:
Fungsi FIELD boleh digunakan dalam klausa SELECT, WHERE dan BETWEEN. Walaupun ia tidak boleh digunakan secara langsung dalam ORDER BY, penyelesaian melibatkan penambahan medan tambahan dalam klausa SELECT dan susunan mengikut medan itu sebaliknya:
<code class="php">$qb ->select("r, field(r.id, " . implode(", ", $ids) . ") as HIDDEN field") ->from("Entities\Round", "r") ->where($qb->expr()->in("r.id", $ids)) ->orderBy("field");</code>
Dengan menyatakan HIDDEN dalam klausa SELECT, anda boleh mengelakkan daripada mempunyai medan tambahan muncul dalam baris hasil. Ini membolehkan anda memesan nilai dengan cekap dalam ungkapan IN menggunakan Doktrin 2.2.
Atas ialah kandungan terperinci Bagaimana Memesan Keputusan Menggunakan Fungsi FIELD MySQL dalam Doktrin 2?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!