आप माइनस हैं -
एक खाली स्ट्रिंग से ''
दूसरे को:
निम्नलिखित देखें:
mysql> select '';
+--+
| |
+--+
| |
+--+
1 row in set (0.00 sec)
mysql> select '3'-'2';
+---------+
| '3'-'2' |
+---------+
| 1 |
+---------+
1 row in set (0.00 sec)
लेकिन चेतावनी अगर यह संख्या स्ट्रिंग . नहीं है :
mysql> select 'a'-'b';
+---------+
| 'a'-'b' |
+---------+
| 0 |
+---------+
1 row in set, 2 warnings (0.00 sec)
दो चेतावनियाँ:
mysql> SHOW WARNINGS LIMIT 2
-> ;
+---------+------+---------------------------------------+
| Level | Code | Message |
+---------+------+---------------------------------------+
| Warning | 1292 | Truncated incorrect DOUBLE value: 'a' |
| Warning | 1292 | Truncated incorrect DOUBLE value: 'b' |
+---------+------+---------------------------------------+
2 rows in set (0.00 sec)
empty
के लिए कोई चेतावनी क्यों नहीं? स्ट्रिंग?
जहां खाली स्ट्रिंग के लिए कोई चेतावनी नहीं है क्योंकि इसकी (कुछ डाली गई) 0
नीचे देखें:
mysql> SELECT 0 = '';
+--------+
| 0 = '' |
+--------+
| 1 |
+--------+
1 row in set (0.00 sec)
इसलिए ''-''
. करके आप कर रहे हैं 0 - 0
mysql> SELECT '' - '';
+---------+
| '' - '' |
+---------+
| 0 |
+---------+
1 row in set (0.00 sec)
अधिक स्पष्ट होने के लिए मैं निम्नलिखित उदाहरण जोड़ रहा हूं (मुझे लगता है कि यह आपके लिए उपयोगी होगा ):
रूपांतरण कैसे होता है:
mysql> SELECT '0' = 0
-> ;
+---------+
| '0' = 0 |
+---------+
| 1 |
+---------+
1 row in set (0.00 sec)
इसके रूपांतरण पर ध्यान दें:
mysql> SELECT '' = '0'
-> ;
+----------+
| '' = '0' |
+----------+
| 0 |
+----------+
1 row in set (0.00 sec)
''
0
. में कनवर्ट किया गया , '0'
0
. में कनवर्ट किया गया लेकिन ''
'0'
. के बराबर नहीं है
mysql> SELECT '1' = 1
-> ;
+---------+
| '1' = 1 |
+---------+
| 1 |
+---------+
1 row in set (0.00 sec)
mysql> SELECT '' = 1
-> ;
+--------+
| '' = 1 |
+--------+
| 0 |
+--------+
1 row in set (0.00 sec)