Rumah > pangkalan data > tutorial mysql > Bagaimana Memesan Keputusan Menggunakan Fungsi FIELD MySQL dalam Doktrin 2?

Bagaimana Memesan Keputusan Menggunakan Fungsi FIELD MySQL dalam Doktrin 2?

Linda Hamilton
Lepaskan: 2024-10-30 00:07:02
asal
974 orang telah melayarinya

How to Order Results Using MySQL's FIELD Function in Doctrine 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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan