Memahami Keutamaan Operator SQL dalam Klausa WHERE:
SQL yang tepat WHERE
penilaian klausa bergantung pada pemahaman keutamaan pengendali. Keutamaan menentukan susunan penilaian untuk pengendali seperti AND
dan OR
dalam satu ungkapan.
AND
dan OR
Keutamaan:
AND
diutamakan daripada OR
. Ini bermakna AND
syarat diproses sebelum OR
keadaan dalam ungkapan gabungan. Pertimbangkan contoh ini:
SELECT [...] FROM [...] WHERE some_col IN (1,2,3,4,5) AND some_other_expr
SELECT [...] FROM [...] WHERE some_col IN (1,2,3) OR some_col IN (4,5) AND some_other_expr
Dalam pertanyaan pertama, some_col
mestilah antara 1 dan 5 dan memuaskan some_other_expr
. Walau bagaimanapun, dalam pertanyaan kedua, keadaan OR
dinilai selepas keadaan AND
. Ia menyemak sama ada some_col
dalam (1,2,3) atau (jika itu salah) jika some_col
dalam (4,5) dan some_other_expr
adalah benar.
Ilustrasi Jadual Kebenaran:
Jadual kebenaran berikut menyerlahkan perbezaan dalam penilaian:
some_col | some_other_expr | First Statement | Second Statement |
---|---|---|---|
1 | True | True | True |
1 | False | False | False |
3 | True | True | True |
3 | False | False | False |
4 | True | False | True |
4 | False | False | False |
5 | True | False | True |
5 | False | False | False |
Perhatikan keputusan yang berbeza apabila some_col
ialah 4 atau 5. Percanggahan ini berpunca daripada keutamaan AND
melebihi OR
.
Mengawal Keutamaan dengan Tanda Kurung:
Untuk mengawal tertib operasi secara eksplisit, gunakan tanda kurung untuk syarat kumpulan. Ini mengatasi keutamaan lalai. Contohnya:
SELECT [...] FROM [...] WHERE (some_col IN (1,2,3) OR some_col IN (4,5)) AND some_other_expr
Di sini, syarat OR
dinilai dahulu, kemudian syarat AND
digunakan pada hasilnya.
Bacaan Selanjutnya:
Untuk maklumat terperinci tentang keutamaan pengendali, rujuk dokumentasi untuk sistem pangkalan data khusus anda:
Atas ialah kandungan terperinci Bagaimanakah Keutamaan Operator SQL Mempengaruhi Penilaian Klausa WHERE?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!