संख्यात्मक की तुलना में स्ट्रिंग को हमेशा 0 में परिवर्तित किया जाता है (निश्चित रूप से संख्यात्मक + स्ट्रिंग युक्त स्ट्रिंग को संख्यात्मक रूप से परिवर्तित किया जाता है। लेकिन यह अच्छा अभ्यास नहीं है)
mysql> SELECT 'Yes' + 0;
+-----------+
| 'Yes' + 0 |
+-----------+
| 0 |
+-----------+
1 row in set, 1 warning (0.00 sec)
mysql> show warnings;
+---------+------+-----------------------------------------+
| Level | Code | Message |
+---------+------+-----------------------------------------+
| Warning | 1292 | Truncated incorrect DOUBLE value: 'Yes' |
+---------+------+-----------------------------------------+
यदि आप बाइनरी मान (हां/नहीं या सही/गलत) या छोटे मान सेट को स्टोर करना चाहते हैं, ENUM
अच्छा विकल्प है। यह छोटी डिस्क स्थान लेता है और सार्थक स्ट्रिंग का उपयोग कर सकता है।
mysql> CREATE TABLE enum_test(a ENUM('Yes', 'No'));
Query OK, 0 rows affected (0.00 sec)
mysql> insert into enum_test values('Yes'), ('No'), ('Invalid');
Query OK, 3 rows affected, 1 warning (0.00 sec)
Records: 3 Duplicates: 0 Warnings: 1
mysql> show warnings;
+---------+------+----------------------------------------+
| Level | Code | Message |
+---------+------+----------------------------------------+
| Warning | 1265 | Data truncated for column 'a' at row 3 |
+---------+------+----------------------------------------+
1 row in set (0.00 sec)
mysql> select * from enum_test where a = 'Yes';
+------+
| a |
+------+
| Yes |
+------+
1 row in set (0.00 sec)
mysql> select * from enum_test where a = 'No';
+------+
| a |
+------+
| No |
+------+
1 row in set (0.00 sec)