MySQL में बूलियन डेटा प्रकार समझना
MySQL 8.0.12 में बूलियन मानों को संभालने के लिए आप BOOL, BOOLEAN या TINYINT(1) का उपयोग कर सकते हैं। जब आप BOOL या BOOLEAN का उपयोग करते हैं, तो MySQL आंतरिक रूप से इसे TINYINT(1) में परिवर्तित कर देता है।
बूलियन लिटरल का प्रतिनिधित्व
BOOL या BOOLEAN डेटा प्रकार में, true लिटरल को 1 के रूप में और false लिटरल को 0 के रूप में दर्शाया जाता है, ठीक वैसे ही जैसे PHP, C, या C++ में होता है।
व्यावहारिक प्रदर्शन
आइए एक टेबल बनाकर देखते हैं कि MySQL कैसे BOOLEAN को TINYINT(1) में बदलता है:
mysql> CREATE TABLE BoolOrBooleanOrTinyintDemo (
Id INT NOT NULL AUTO_INCREMENT,
isvalidAddress BOOLEAN,
PRIMARY KEY(Id)
);
अब SHOW CREATE TABLE का उपयोग करके टेबल की संरचना जांचते हैं:
mysql> SHOW CREATE TABLE BoolOrBooleanOrTinyintDemo\G
आउटपुट:
CREATE TABLE `boolorbooleanortinyintdemo` ( `Id` int(11) NOT NULL AUTO_INCREMENT, `isvalidAddress` tinyint(1) DEFAULT NULL, PRIMARY KEY (`Id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
जैसा कि आप देख सकते हैं, isvalidAddress कॉलम का डेटा प्रकार BOOLEAN आंतरिक रूप से tinyint(1) में बदल गया है।
रिकॉर्ड डालना और जांचना
अब true और false लिटरल मानों के साथ रिकॉर्ड डालते हैं:
mysql> INSERT INTO BoolOrBooleanOrTinyintDemo(isvalidAddress) VALUES(true); mysql> INSERT INTO BoolOrBooleanOrTinyintDemo(isvalidAddress) VALUES(false); mysql> INSERT INTO BoolOrBooleanOrTinyintDemo(isvalidAddress) VALUES(true); mysql> INSERT INTO BoolOrBooleanOrTinyintDemo(isvalidAddress) VALUES(false); mysql> INSERT INTO BoolOrBooleanOrTinyintDemo(isvalidAddress) VALUES(true);
सभी रिकॉर्ड देखने के लिए:
mysql> SELECT * FROM BoolOrBooleanOrTinyintDemo;
आउटपुट:
+----+----------------+ | Id | isvalidAddress | +----+----------------+ | 1 | 1 | | 2 | 0 | | 3 | 1 | | 4 | 0 | | 5 | 1 | +----+----------------+
यह स्पष्ट रूप से दिखाता है कि true को 1 और false को 0 के रूप में संग्रहीत किया जाता है।
PHP में बूलियन मान
PHP में भी यही व्यवहार लागू होता है। true को 1 और false को 0 के रूप में दर्शाया जाता है।
उदाहरण 1: True मान
<?php
$isValidAddress = 1;
if($isValidAddress) {
echo 'true is represented as ' . $isValidAddress;
} else {
echo 'false is represented as ' . $isValidAddress;
}
?>
आउटपुट: true is represented as 1
उदाहरण 2: False मान
<?php
$isValidAddress = 0;
if($isValidAddress) {
echo 'true is represented as ' . $isValidAddress;
} else {
echo 'false is represented as ' . $isValidAddress;
}
?>
आउटपुट: false is represented as 0
निष्कर्ष
MySQL में BOOL/BOOLEAN केवल TINYINT(1) के लिए समानार्थी हैं। PHP और MySQL दोनों में बूलियन मानों का संख्यात्मक प्रतिनिधित्व समान होता है (true=1, false=0), जिससे दोनों के बीच निर्बाध एकीकरण संभव होता है।