Rumah >pangkalan data >tutorial mysql >Bagaimanakah MySQL Menilai Operator `OR` dan `DAN` dalam Klausa `WHERE`?
MySQL OR/AND Precedence
Pengendali logik MySQL mempunyai peraturan keutamaan khusus yang menentukan cara berbilang syarat dinilai dalam pertanyaan. Memahami peraturan ini adalah penting untuk mencipta pertanyaan yang cekap dan tepat.
Mengenai pertanyaan anda, anda ingin mendapatkan semula baris dengan paparan 1 atau 2 dan di mana mana-mana kandungan, teg atau tajuk mengandungi "hello dunia." Peraturan keutamaan untuk pengendali MySQL ialah:
(highest precedence) INTERVAL BINARY, COLLATE ! - (unary minus), ~ (unary bit inversion) ^ *, /, DIV, %, MOD -, + <<, >> & | = (comparison), <=, >=, >, <, <>, !=, IS, LIKE, REGEXP, IN BETWEEN, CASE, WHEN, THEN, ELSE NOT &&, AND XOR ||, OR = (assignment), := (lowest precedence)
Dengan mengambil kira peraturan ini, mari analisa pertanyaan anda:
Select * from tablename where display = 1 or display = 2 and content like "%hello world%" or tags like "%hello world%" or title = "%hello world%"
Mengikut peraturan keutamaan, pengendali logik dinilai dalam kurungan :
Disebabkan keutamaan ATAU melebihi DAN, pertanyaan akan ditafsirkan seperti berikut:
Select * from tablename where (display = 1 or display = 2) and (content like "%hello world%" or (tags like "%hello world%" or title = "%hello world%"))
Oleh itu, pertanyaan akan mendapatkan semula baris di mana:
Untuk mengelakkan kekeliruan, adalah disyorkan untuk menggunakan kurungan untuk menunjukkan secara jelas susunan penilaian yang diingini. Sebagai contoh, pertanyaan berikut akan mendapatkan semula baris dengan paparan sama ada 1 atau 2, atau di mana mana-mana kandungan, teg atau tajuk mengandungi "hello world":
Select * from tablename where (display = 1 or display = 2) and (content like "%hello world%" or tags like "%hello world%" or title like "%hello world%")
Atas ialah kandungan terperinci Bagaimanakah MySQL Menilai Operator `OR` dan `DAN` dalam Klausa `WHERE`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!