Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

चयन ''-'' का अर्थ क्या है

आप माइनस हैं - एक खाली स्ट्रिंग से '' दूसरे को:

निम्नलिखित देखें:

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) 


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. स्प्रिंग JDBC application.properties फ़ाइल का उपयोग कर रहा है

  2. mysql2.so:libmysqlclient_r.so.15:साझा ऑब्जेक्ट फ़ाइल नहीं खोल सकता:ऐसी कोई फ़ाइल या निर्देशिका नहीं

  3. Google मानचित्र API v3 चेकबॉक्स / फ़िल्टर डेटाबेस

  4. एसक्यूएल किसी अन्य तालिका से कैसे योग करें और किसी अन्य तालिका में डालें

  5. क्या डेटाबेस तालिका प्राथमिक कुंजी के बिना हो सकती है?