Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Mengekalkan Susunan Baris dalam Pertanyaan Bersyarat Menggunakan Klausa `WHERE IN`?

Bagaimanakah Saya Boleh Mengekalkan Susunan Baris dalam Pertanyaan Bersyarat Menggunakan Klausa `WHERE IN`?

Barbara Streisand
Barbara Streisandasal
2024-10-27 02:39:03566semak imbas

How Can I Preserve Row Order in Conditional Queries Using `WHERE IN` Clause?

Memelihara Susunan Baris dalam Pertanyaan Bersyarat

Masalah:

Apabila menggunakan klausa WHERE IN, baris biasanya disusun secara menaik mengikut lajur yang dinyatakan dalam klausa ORDER BY. Walau bagaimanapun, terdapat senario di mana ia dikehendaki mengekalkan susunan baris seperti yang dinyatakan dalam klausa IN.

Penyelesaian:

Untuk mencapai ini, anda boleh menggunakan ORDER BY FIELD fungsi. Fungsi ini menyusun semula baris berdasarkan susunan yang ditentukan dalam hujahnya.

Contoh:

Pertimbangkan pertanyaan berikut:

SELECT *
FROM table
WHERE id IN (118, 17, 113, 23, 72);

Pertanyaan ini akan mengembalikan baris yang dipesan oleh id secara menaik. Untuk mengekalkan susunan baris seperti yang dinyatakan dalam klausa IN, anda boleh menggunakan pertanyaan yang diubah suai berikut:

SELECT *
FROM table
WHERE id IN (118, 17, 113, 23, 72) 
ORDER BY FIELD(id, 118, 17, 113, 23, 72)

Dengan menentukan susunan yang diingini sebagai argumen kepada fungsi FIELD, baris akan disusun semula supaya sepadan dengannya. pesanan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengekalkan Susunan Baris dalam Pertanyaan Bersyarat Menggunakan Klausa `WHERE IN`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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