Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Boleh Mengekalkan Susunan Nilai dalam Pertanyaan MySQL `IN`?

Bagaimanakah Saya Boleh Mengekalkan Susunan Nilai dalam Pertanyaan MySQL `IN`?

Patricia Arquette
Lepaskan: 2024-12-26 00:50:17
asal
637 orang telah melayarinya

How Can I Preserve the Order of Values in a MySQL `IN` Query?

Memelihara Pesanan Tertentu dalam Pertanyaan "IN" MySQL

Apabila membuat pertanyaan data menggunakan MySQL, pengendali "IN" membenarkan anda memilih berdasarkan rekod pada satu set nilai. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa gelagat lalai pertanyaan ini tidak mengekalkan susunan nilai yang dinyatakan.

Masalah:

Dalam senario yang anda ada jadual dengan kunci utama yang ditambah secara automatik, anda mungkin menghadapi situasi di mana keputusan pertanyaan "IN" disusun berdasarkan kunci utama dan bukannya susunan yang ditentukan daripada nilai. Ini boleh menjadi masalah jika anda ingin mengekalkan urutan keputusan.

Penyelesaian:

Untuk mencapai pesanan yang diingini, anda boleh menggunakan fungsi FIELD() dalam berganding dengan klausa ORDER BY. Fungsi FIELD() memberikan kedudukan kepada nilai berdasarkan susunan yang dipaparkan dalam senarai argumennya. Berikut ialah contoh:

SELECT * FROM foo f
WHERE f.id IN (2, 3, 1)
ORDER BY FIELD(f.id, 2, 3, 1);
Salin selepas log masuk

Dalam pertanyaan ini, senarai hujah FIELD() menentukan urutan yang anda mahukan hasilnya dipaparkan. Klausa ORDER BY mengisih keputusan berdasarkan kedudukan yang diberikan oleh FIELD().

Penjelasan:

  • Fungsi FIELD() memberikan kedudukan berikut kepada nilai:

    • 2 (hujah pertama): Kedudukan 1
    • 3 (argumen kedua): Kedudukan 2
    • 1 (argumen ketiga): Kedudukan 3
  • Klausa ORDER BY menyusun keputusan dalam menaik susunan jawatan yang diberikan oleh FIELD().

Dengan menggunakan kaedah ini, anda boleh memastikan bahawa susunan keputusan dalam pertanyaan "IN" anda sepadan dengan susunan nilai yang ditentukan. Ini amat berguna dalam senario di mana anda berurusan dengan set data tersusun atau apabila anda ingin mengekalkan perhubungan tertentu antara rekod.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengekalkan Susunan Nilai dalam Pertanyaan MySQL `IN`?. 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