Rumah  >  Artikel  >  pangkalan data  >  Bagaimana Mengendalikan Rekod dengan Berbilang Nilai dalam Klausa MySQL WHERE IN()?

Bagaimana Mengendalikan Rekod dengan Berbilang Nilai dalam Klausa MySQL WHERE IN()?

Barbara Streisand
Barbara Streisandasal
2024-11-06 18:07:03108semak imbas

How to Handle Records with Multiple Values in a MySQL WHERE IN() Clause?

MySQL IN () Operator

Apabila menanyakan pangkalan data MySQL, operator WHERE IN () sering digunakan untuk mendapatkan semula baris berdasarkan tertentu nilai dalam lajur. Sebagai contoh, pertanyaan berikut mendapatkan semula semua baris daripada jadual "jadual" di mana lajur "id" sepadan dengan mana-mana nilai (1, 2, 3, 4):

<code class="sql">SELECT * FROM table WHERE id IN (1,2,3,4);</code>

Walau bagaimanapun, isu timbul apabila rekod mempunyai berbilang nilai "id", seperti 1 dan 3. Dalam kes sedemikian, pertanyaan mungkin tidak mengembalikan baris tersebut.

Penyelesaian

Pertanyaan menterjemah kepada syarat ATAU berikut:

<code class="sql">SELECT * FROM table WHERE id='1' or id='2' or id='3' or id='4';</code>

Oleh itu, ia hanya akan mengembalikan baris yang sepadan dengan mana-mana syarat ini.

Untuk menyelesaikannya, satu pilihan ialah menggunakan jenis data SET untuk " lajur id". Ini membolehkan anda menyimpan berbilang nilai menggunakan rentetan yang dipisahkan koma. Anda kemudiannya boleh menggunakan fungsi FIND_IN_SET() untuk mencari nilai tertentu:

<code class="sql">SELECT * FROM table WHERE FIND_IN_SET('1', id);</code>

Pertanyaan ini akan mengembalikan semua baris yang mempunyai '1' sebagai salah satu nilai dalam lajur "id", tanpa mengira sebarang nilai lain yang mungkin ada.

Atas ialah kandungan terperinci Bagaimana Mengendalikan Rekod dengan Berbilang Nilai dalam Klausa MySQL 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