Rumah > pangkalan data > tutorial mysql > Mengapa pertanyaan SQL saya mengabaikan penapis universiti, dan bagaimana saya boleh membetulkannya?

Mengapa pertanyaan SQL saya mengabaikan penapis universiti, dan bagaimana saya boleh membetulkannya?

Patricia Arquette
Lepaskan: 2025-01-19 10:02:09
asal
978 orang telah melayarinya

Why is my SQL query ignoring the university filter, and how can I fix it?

Menyelesaikan Masalah Pertanyaan SQL: Isu Penapis Universiti

Pertanyaan SQL ini menyasarkan jadual "orang", menggunakan berbilang penapis untuk memperhalusi hasil. Masalahnya ialah pertanyaan mengembalikan rekod yang tidak sepatutnya melepasi penapis universiti. Ini berpunca daripada isu keutamaan operator dalam klausa WHERE.

Pertanyaan asal mengalami penggunaan operator AND dan OR yang salah. Keutamaan AND yang lebih tinggi menyebabkan keadaan university='2' tidak dipautkan dengan betul hanya kepada operasi MATCH. Penapis fname dan lname dinilai secara bebas, membawa kepada hasil yang tidak diingini.

Penyelesaian melibatkan penstrukturan semula pertanyaan untuk menguatkuasakan susunan operasi yang betul:

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

Dengan mengumpulkan penapis fname dan lname menggunakan kurungan, kami memastikan syarat university='2' terpakai kepada ketiga-tiga kriteria. Ini menjamin bahawa hanya rekod dari universiti '2' yang memenuhi sekurang-kurangnya satu daripada syarat berasaskan nama disertakan dalam output.

Atas ialah kandungan terperinci Mengapa pertanyaan SQL saya mengabaikan penapis universiti, dan bagaimana saya boleh membetulkannya?. 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