sql >> Databasteknik >  >> RDS >> Mysql

Åtgärda "ERROR 1136 (21S01):Kolumnantal matchar inte värderäkning på rad 2" när du använder VALUES Statement i MySQL

Om du får ett felmeddelande som lyder något som "ERROR 1136 (21S01):Kolumnantal matchar inte värderäkning på rad 2 ” när du använder VALUES uttalande i MySQL, beror det förmodligen på att det finns en oöverensstämmelse i antalet kolumner som anges i ROW() klausuler.

För att åtgärda detta fel, se till att alla ROW() satser innehåller exakt samma antal kolumner.

Exempel på fel

Här är ett exempel på kod som ger felet:

VALUES ROW(1, 2), ROW(3);

Resultat:

ERROR 1136 (21S01): Column count doesn't match value count at row 2

I det här fallet skickade jag två värden med den första ROW() men bara ett värde med det andra.

Det var det som orsakade felet.

Lösning

För att åtgärda felet behöver vi bara se till att alla ROW() satser innehåller samma antal värden.

Exempel:

VALUES ROW(1, 2), ROW(3, 4);

Resultat:

+----------+----------+
| column_0 | column_1 |
+----------+----------+
|        1 |        2 |
|        3 |        4 |
+----------+----------+

Andra orsaker till felet

Samma fel kan också uppstå när du använder INSERT för att infoga fel antal kolumner i en tabell.

I sådana fall, se till att du infogar rätt antal rader. Alternativt, för att infoga data i färre kolumner än tabellen innehåller, kan du uttryckligen namnge kolumnerna som du vill infoga data för.


  1. Hur man skickar data från en aktivitet till en Java-klass

  2. Spara byte[] i en SQL Server-databas från C#

  3. LÖST:Microsoft Office 365 version 2009 kan bryta din databasapplikation

  4. C#:Objekt kan inte castas från DbNull till andra typer