Rumah >pangkalan data >tutorial mysql >Cara Menggunakan Penapisan Klausa WHERE dengan betul dalam Pertanyaan SQL Kompleks?

Cara Menggunakan Penapisan Klausa WHERE dengan betul dalam Pertanyaan SQL Kompleks?

Barbara Streisand
Barbara Streisandasal
2025-01-19 10:16:09948semak imbas

How to Correctly Apply WHERE Clause Filtering in Complex SQL Queries?

Isu keutamaan parameter WHERE dalam pernyataan SQL

Pertanyaan SQL berikut direka bentuk untuk mendapatkan semula data daripada jadual "orang" dan mengehadkan keputusan kepada rekod dengan "universiti=2":

<code class="language-sql">SELECT * FROM people 
WHERE
university='2' 
AND MATCH (lname,fname) AGAINST ('+massive' IN BOOLEAN MODE) 
OR (fname LIKE '%box%' OR lname LIKE '%box%') </code>

Walau bagaimanapun, pertanyaan ini menghasilkan keputusan yang tidak dijangka melebihi syarat "universiti=2". Untuk menyelesaikan masalah ini, kita perlu memastikan bahawa syarat "universiti=2" mengehadkan hasil carian dengan ketat.

Laraskan kurungan untuk mengawal susunan operasi

Masalah dengan pertanyaan ini ialah penggunaan kurungan yang tidak betul, yang menjejaskan susunan penilaian ungkapan. Dalam pertanyaan asal, "DAN" mempunyai keutamaan yang lebih tinggi daripada "ATAU", yang bermaksud ia dinilai terlebih dahulu. Akibatnya, "universiti=2" hanya digabungkan dengan "MATCH (lname,fname) AGAINST (' masif' DALAM MOD BOOLEAN)" dan bukan dengan ujian "fname/lname".

Untuk membetulkannya, kita perlu melaraskan kurungan untuk memastikan bahawa "universiti=2" digabungkan dengan keseluruhan kriteria carian:

<code class="language-sql">SELECT * FROM people 
WHERE
    university='2' 
    AND (MATCH (lname,fname) AGAINST ('+massive' IN BOOLEAN MODE) 
         OR fname LIKE '%box%' 
         OR lname LIKE '%box%') </code>

Dengan pelarasan ini, syarat "universiti=2" kini disertakan dalam kurungan, menunjukkan bahawa ia harus dinilai dahulu dan kemudian digabungkan dengan syarat carian dalam set kurungan kedua. Ini memastikan bahawa hanya rekod yang "universiti=2" adalah benar akan dipertimbangkan dalam carian.

Atas ialah kandungan terperinci Cara Menggunakan Penapisan Klausa WHERE dengan betul dalam Pertanyaan SQL Kompleks?. 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