Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL "Column count doesn't match value count" एरर हल करें

कॉलम-मान गिनती बेमेल एरर का समाधान

यह एरर तब आता है जब INSERT में मानों की संख्या टेबल के कॉलम्स की संख्या से मेल नहीं खाती।

एरर उदाहरण

mysql> create table errorDemo (
    -> User_Id int NOT NULL AUTO_INCREMENT,
    -> User_Name varchar(20),
    -> PRIMARY KEY(User_Id)
    -> );

mysql> INSERT INTO errorDemo VALUES('John');
ERROR 1136 (21S01): Column count doesn't match value count at row 1

कारण

टेबल में 2 कॉलम हैं (User_Id, User_Name) लेकिन केवल 1 मान दिया गया। User_Id ऑटो-इन्क्रीमेंट है, इसलिए इसे निर्दिष्ट नहीं करना चाहिए।

समाधान: कॉलम नाम निर्दिष्ट करें

INSERT INTO yourTableName (column1, column2, ...) VALUES (value1, value2, ...);

सही क्वेरी

mysql> INSERT INTO errorDemo (User_Name) VALUES ('John');
Query OK, 1 row affected (0.12 sec)
mysql> INSERT INTO errorDemo (User_Name) VALUES ('Carol');
mysql> INSERT INTO errorDemo (User_Name) VALUES ('Sam');

परिणाम

+---------+-----------+
| User_Id | User_Name |
+---------+-----------+
| 1       | John      |
| 2       | Carol     |
| 3       | Sam       |
+---------+-----------+

बेस्ट प्रैक्टिस

  • हमेशा कॉलम नाम सूचीबद्ध करें: INSERT INTO table (col1, col2) VALUES (val1, val2)
  • ऑटो-इन्क्रीमेंट कॉलम छोड़ दें
  • डिफ़ॉल्ट मान वाले कॉलम छोड़ सकते हैं
  • कोड रखरखाव आसान होता है (कॉलम क्रम बदलने पर टूटता नहीं)
  1. - MySQL में ENUM कॉलम से केवल 'NO' मानों की गणना करें

    MySQL में ENUM कॉलम पर सशर्त गणना के लिए बूलियन अभिव्यक्ति का योग (SUM(condition)) उपयोग कर सकते हैं। MySQL में TRUE = 1 और FALSE = 0 होता है। टेबल बनाएं mysql> CREATE TABLE DemoTable1829 ( Name VARCHAR(20), isTopper ENUM(YES,NO) ); डेटा डालें mysql> INSERT INTO DemoTable1829 VALUES(

  1. - MySQL में कॉलम मान के पहले अक्षर को प्राप्त करके दूसरे कॉलम में डालें

    समाधान LEFT() फंक्शन का उपयोग करके पहले अक्षर को निकालें और UPDATE से दूसरे कॉलम में स्टोर करें। उदाहरण टेबल बनाएं: INSERT INTO DemoTable2036 (Title) VALUES (Chris), (John), (Adam); अपडेट क्वेरी UPDATE DemoTable2036 SET FirstLetter = LEFT(Title, 1); परिणाम +-------------+-------+ | FirstLetter

  1. - MySQL में किसी कॉलम में अधिकतम मान खोजना

    किसी कॉलम में अधिकतम मान खोजने के लिए MAX(columnName) का उपयोग करना होगा। लेकिन, पहले, हम MySQL में डेटाबेस और टेबल के बारे में समझेंगे। MySQL इंस्टॉल करने से पहले, यह निर्धारित करना महत्वपूर्ण है कि किस संस्करण और किस डिस्ट्रीब्यूशन फॉर्मेट (यह बाइनरी फाइल या सोर्स फाइलों से हो सकता है) का उपयोग