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

SQL में NULL के साथ लापता FLOAT मानों को कैसे संग्रहीत करें?

मुद्दा यह है कि MySQL एक खाली फ़ील्ड की व्याख्या कैसे करता है? बनाम एक अनुपलब्ध फ़ील्ड . LOAD DATA INFILE के डॉक्स से ...

इस मामले में ऐसा लगता है कि MySQL इसे खाली मानता है . आप इसे show warnings . से देख सकते हैं ।

mysql> show warnings;
+---------+------+------------------------------------------------------------+
| Level   | Code | Message                                                    |
+---------+------+------------------------------------------------------------+
| Warning | 1265 | Data truncated for column 'customerReviewAverage' at row 2 |
| Warning | 1265 | Data truncated for column 'customerReviewAverage' at row 3 |
+---------+------+------------------------------------------------------------+
2 rows in set (0.00 sec)

जबकि यदि हम अनुगामी अल्पविराम हटा दें तो फ़ील्ड अनुपलब्ध . है ...

19658847,Glanzlichter - CD,,12.99,5.0
19658856,Glanzlichter - CD,,6.99
19658865,Glanzlichter - CD,,8.99
1965886,Beach Boys '69 - CASSETTE,,6.99,4.5

फिर डेटा शून्य पर सेट हो जाता है।

mysql> show warnings;
+---------+------+--------------------------------------------+
| Level   | Code | Message                                    |
+---------+------+--------------------------------------------+
| Warning | 1261 | Row 2 doesn't contain data for all columns |
| Warning | 1261 | Row 3 doesn't contain data for all columns |
+---------+------+--------------------------------------------+

mysql> select * from products;   
+----------+---------------------------+-------------+--------------+-----------------------+
| sku      | name                      | description | regularPrice | customerReviewAverage |
+----------+---------------------------+-------------+--------------+-----------------------+
| 19658847 | Glanzlichter - CD         | NULL        |        12.99 |                     5 |
| 19658856 | Glanzlichter - CD         | NULL        |         6.99 |                  NULL |
| 19658865 | Glanzlichter - CD         | NULL        |         8.99 |                  NULL |
|  1965886 | Beach Boys '69 - CASSETTE | NULL        |         6.99 |                   4.5 |
+----------+---------------------------+-------------+--------------+-----------------------+
4 rows in set (0.00 sec)

@customerReviewAverage . के लिए भी यही काम कर रहे हैं @description . के लिए मेरे लिए MySQL 5.7 में काम किया।

LOAD DATA
  LOCAL INFILE 'product.csv'
  INTO TABLE Products
  FIELDS TERMINATED BY ','
  ENCLOSED BY '"'
  LINES TERMINATED BY '\n'
  (sku, name, @description, regularPrice, @customerReviewAverage)       
  SET description           = IF(@description='',NULL,@description),
      customerReviewAverage = IF(@customerReviewAverage='',NULL,@customerReviewAverage);

mysql> select * from products;
+----------+---------------------------+-------------+--------------+-----------------------+
| sku      | name                      | description | regularPrice | customerReviewAverage |
+----------+---------------------------+-------------+--------------+-----------------------+
| 19658847 | Glanzlichter - CD         | NULL        |        12.99 |                     5 |
| 19658856 | Glanzlichter - CD         | NULL        |         6.99 |                  NULL |
| 19658865 | Glanzlichter - CD         | NULL        |         8.99 |                  NULL |
|  1965886 | Beach Boys '69 - CASSETTE | NULL        |         6.99 |                   4.5 |
+----------+---------------------------+-------------+--------------+-----------------------+
4 rows 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. शर्त नहीं के आधार पर 2 तालिकाओं के परिणामों में कैसे शामिल हों

  2. एसक्यूएल के साथ गतिशील MySQL प्रश्न तैयार कथन के रूप में सुरक्षित रूप से बच रहे हैं?

  3. MySQL पीडीओ - डिफ़ॉल्ट फ़ेच मोड सेट करना?

  4. MySQL कॉलम नामों में विशेष वर्णों का उपयोग कैसे करें?

  5. बटन क्लिक पर MySQL डेटाबेस से HTML टेक्स्टबॉक्स में डेटा लोड करें