MySQL-এ বুলিয়ান এক্সপ্রেশন TRUE OR TRUE AND FALSE এর ফলাফল TRUE (1) হয়, কারণ AND অপারেটরের প্রাধান্য (precedence) OR-এর চেয়ে বেশি।
মূল্যায়ন ক্রম
- প্রথমে
ANDমূল্যায়ন:TRUE AND FALSE = FALSE (0) - তারপর
ORমূল্যায়ন:TRUE OR FALSE = TRUE (1)
তাই এক্সপ্রেশনটি আসলে এইভাবে গ্রুপ হয়: TRUE OR (TRUE AND FALSE)।
ধাপে ধাপে যাচাই
mysql> SELECT (TRUE AND FALSE); +------------------+ | (TRUE AND FALSE) | +------------------+ | 0 | +------------------+ 1 row in set (0.00 sec)
mysql> SELECT (TRUE OR FALSE); +-----------------+ | (TRUE OR FALSE) | +-----------------+ | 1 | +-----------------+ 1 row in set (0.00 sec)
mysql> SELECT (TRUE OR TRUE AND FALSE); +--------------------------+ | (TRUE OR TRUE AND FALSE) | +--------------------------+ | 1 | +--------------------------+ 1 row in set (0.00 sec)
অপারেটর প্রাধান্য তালিকা (উচ্চ থেকে নিম্ন):
INTERVAL, BINARY, COLLATE!(NOT)-(UNARY MINUS),~^*, /, DIV, %, MOD+, -<<, >>&|=, <=>, >=, >, <=, <, <>, !=, IS, LIKE, REGEXP, INBETWEEN, CASE, WHEN, THEN, ELSENOTANDORXOR
সর্বোত্তম অনুশীলন: যেকোনো জটিল বুলিয়ান এক্সপ্রেশনে বন্ধনী (()) ব্যবহার করে প্রাধান্য স্পষ্ট করুন: (TRUE OR TRUE) AND FALSE = FALSE, TRUE OR (TRUE AND FALSE) = TRUE।