Keutamaan pengendali logik SQL: memahami kepentingannya
Dalam SQL, susunan operasi pengendali logik (terutamanya "AND" dan "OR") memainkan peranan penting dalam menentukan hasil pertanyaan. Pengendali dengan keutamaan yang lebih tinggi dinilai sebelum pengendali dengan keutamaan yang lebih rendah, yang mungkin membawa kepada keputusan yang berbeza.
DAN dan ATAU keutamaan
Dalam SQL, "AND" mempunyai keutamaan yang lebih tinggi daripada "OR". Pertimbangkan contoh berikut:
<code class="language-sql">SELECT [...] FROM [...] WHERE some_col in (1,2,3,4,5) AND some_other_expr</code>
<code class="language-sql">SELECT [...] FROM [...] WHERE some_col in (1,2,3) or some_col in (4,5) AND some_other_expr</code>
Pernyataan pertama mengembalikan baris dengan some_col
berada dalam julat 1-5 dan some_other_expr
adalah benar. Walau bagaimanapun, oleh kerana "DAN" mempunyai keutamaan yang lebih tinggi daripada "ATAU", pernyataan kedua tidak setara.
Penilaian pernyataan kedua
Memandangkan "DAN" mempunyai keutamaan yang lebih tinggi, pernyataan kedua dikira seperti berikut:
<code class="language-sql">WHERE (some_col in (1,2,3) or some_col in (4,5)) AND some_other_expr</code>
Ini bermakna pertanyaan mengembalikan baris dengan:
some_col
dalam julat 1-3, atau
some_col
Dalam julat 4-5kemudian
some_other_expr
adalah benarUntuk mencapai kefungsian yang dimaksudkan, keutamaan boleh ditindih menggunakan kurungan:
<code class="language-sql">WHERE (some_col in (1,2,3) OR some_col in (4,5)) AND some_other_expr</code>
Ini memastikan bahawa pertanyaan mengembalikan baris dengan:
some_col
Dalam julat 1-5kemudian
some_other_expr
adalah benarRujukan Keutamaan
Bagi mereka yang ingin mendapatkan penjelasan lanjut, sila rujuk sumber berikut:
Atas ialah kandungan terperinci Bagaimanakah Keutamaan Operator Logik SQL Mempengaruhi Keputusan Pertanyaan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!