If tutorials available on this website are helpful for you, please whitelist this website in your ad blocker😭 or Donate to help us ❤️ pay for the web hosting to keep the website running.
MySQL में कोई built in Boolean value नहीं है लेकिन यह 0 को FALSE
और non zero values को TRUE
मानता है। AND operator एक logical operator है जो दो या दो से अधिक boolean expression को combine करके 1 , 0 या NULL return करता है।
इस topic में हम AND
operator के बारे में ही बात करेंगे।
normally AND operator तब 1 (true) return करता है जब compare किये जाने वाले दोनो expressions true हो otherwise 0 (false) , जैसा कि लगभग हर programming और electronic circuits में होता है।
For Example
true AND true = true;
true AND false = false;
false AND false = false;
अब हालाँकि MySQL में NULL
का concept भी है तो NULL भी लगभग 0 की तरह ही work करेगा AND
operator के लिए , मतलब false . लेकिन ध्यान रहे NULL और 0 same नहीं है।
practice के लिए आप directly query run करके देख लेते हैं , किन combinations के साथ हमें true या false मिलेगा।
SELECT 1 AND 0, 0 AND 1, 0 AND 0, 1 AND 1;
Output
+---------+---------+---------+---------+ | 1 AND 0 | 0 AND 1 | 0 AND 0 | 1 AND 1 | +---------+---------+---------+---------+ | 0 | 0 | 0 | 1 | +---------+---------+---------+---------+ 1 row in set (0.000 sec)
ऊपर दिया गया example तो 1 और 0 के साथ का है अब NULL के साथ का देख लेते हैं -
SELECT 1 AND NULL, NULL AND NULL, 0 AND NULL;
Output
+------------+---------------+------------+ | 1 AND NULL | NULL AND NULL | 0 AND NULL | +------------+---------------+------------+ | NULL | NULL | 0 | +------------+---------------+------------+ 1 row in set (0.000 sec)
MySQL में AND operator का use Where Clause के साथ , Table Joining में या किसी particular if else condition के साथ किया सकता है।
Example के लिए हमारे पास एक users
table है , सबसे पहले normally सभी records को fetch करके देखते हैं -
SELECT * FROM users;
Output
+----+--------+------------------+------------+---------+--------+ | id | name | email | mobileno | address | salary| +----+--------+------------------+------------+---------+--------+ | 1 | Raju | askdj@gmail.com | 3243907889 | India | 1000 | | 2 | Aman | lfd@gmail.com | 9043907889 | NULL | 1200 | | 3 | Babloo | bsdnas@gmail.com | NULL | US | 1030 | | 4 | john | Xaas@gmail.com | 9100021321 | UAE | 100 | | 5 | Shaam | Zaa@gmail.com | 9100021334 | Russia | 200 | | 6 | kaam | a@gmail.com | 9100021326 | Turkey | 1500 | +----+--------+------------------+------------+---------+--------+ 6 rows in set (0.000 sec)
Same table से अब हम वो records fetch करेंगे जहाँ पर salary 200 या बराबर लेकिन 1200 से कम या बराबर है -
SELECT * FROM users WHERE salary >= 200 AND salary <= 1200;
Output
+----+--------+------------------+------------+---------+--------+ | id | name | email | mobileno | address | salary | +----+--------+------------------+------------+---------+--------+ | 1 | Raju | askdj@gmail.com | 3243907889 | India | 1000 | | 2 | Aman | lfd@gmail.com | 9043907889 | NULL | 1200 | | 3 | Babloo | bsdnas@gmail.com | NULL | US | 1030 | | 5 | Shaam | Zaa@gmail.com | 9100021334 | Russia | 200 | +----+--------+------------------+------------+---------+--------+ 4 rows in set (0.000 sec)
Output में आप देख सकते हैं कि हमें ठीक condition के according ही records मिले हैं।
हालाँकि आप AND
की जगह &&
का use भी कर सकते हैं।
SELECT * FROM users WHERE salary >= 200 && address = 'India';
Output
+----+------+-----------------+------------+---------+--------+ | id | name | email | mobileno | address | salary | +----+------+-----------------+------------+---------+--------+ | 1 | Raju | askdj@gmail.com | 3243907889 | India | 1000 | +----+------+-----------------+------------+---------+--------+ 1 row in set (0.002 sec)
यह जरूरी नहीं है कि 2 expressions को use करें , आप कितनीं ही conditions का use कर सकते हैं , जैसे
SELECT * FROM users WHERE salary >= 200 AND salary <= 1200 AND address='India';
Output
+----+------+-----------------+------------+---------+--------+ | id | name | email | mobileno | address | salary | +----+------+-----------------+------------+---------+--------+ | 1 | Raju | askdj@gmail.com | 3243907889 | India | 1000 | +----+------+-----------------+------------+---------+--------+ 1 row in set (0.001 sec)
जब किसी condition में AND और OR
दोनों operators का use होता है , तो MySQL उस expression को evaluate / calculate करने के लिए operator precedence का use करती है। और higher precedence वाले expression पहले calculate होते हैं।
अब AND और OR operator में AND
operator की higher precedence है इसलिए यह पहले evaluate होगा , इस आप query run करके भी हैं।
SELECT 1 OR 0 AND 0;
Output
+--------------+ | 1 OR 0 AND 0 | +--------------+ | 1 | +--------------+ 1 row in set (0.000 sec)
Example में दिए गए expression में 1 OR 0 AND 0 evaluate करते time सबसे पहले 0 AND 0
evaluate होगा जो 0 (false) return करेगा उसके बाद 1 OR 0
बचेगा जो finally 1 (true) return करेगा।
इसे आप नीचे दिए गए statements से समझ सकते हैं।
1 OR 0 AND 0;
1 OR (0 AND 0); // 0 AND 0 returns 0.
1 OR 0; // result 1;
तो कुछ इस तरह से MySQL में AND operator का use किया जाता है , I Hope आपको समझ आया होगा।