mysql - SQL 错误 "Column count doesn' t 匹配行的值计数”- 但我已检查列数是否等于值数

标签 mysql sql

我一直在尝试建立一个非常简单的 SQL 表,该表链接到一个更大的表 - 该表工作正常,但第二个表不断抛出经典的“列数与行的值数不匹配”错误。

CREATE TABLE NonHeadlessDistro 
( 
Headless INT,
Proprietary INT,
EaseInstall INT,
SimilarTo VARCHAR(28), 
Gnome INT,
KDE INT,
LXDE INT,
XFCE INT,
MATE INT,
Cinna INT
);

INSERT INTO NonHeadlessDistro (Headless, Proprietary, EaseInstall, 
SimilarTo, Gnome, KDE, LXDE, XFCE, MATE, Cinna)
VALUES ('0','1','2','macOS','1','1','1','1','1','0'),
('0','4','4','Linux','1','1','1','1','0','0'),
('0','1','1','Windows','0','1','0','1','1','1'),
('0','2','2','Windows','0','0','1','1','0','0'),
('0','1','5','Linux','1','0','0','0','0','0'),
('0','1','4','Linux','1','0','0','0','0','0'),
('0','2','2','Linux','1','1','1','1','1','1'),
('0','3','5','Linux','1','1','1','1','1','1'),
('0','2','2','Linux','0','1','0','0','1','0'),
('0','1','2','Linux','0','0','1','0','0','0'),
('0','1','4','Linux' '1','1','0','0','0','0'),
('0','3','5','Linux','1','1','1','1','1','1'), 
('0','2','3','Linux','0','0','0','0','1','0'),
('0','3','5','Linux','1','1','1','1','1','1'),
('0','1','4','Linux','1','1','0','0','0','0'),
('0','5','2','Linux','1','0','1','0','1','0'),
('0','5','5','Linux','0','0','1','0','1','0'),
('0','5','4','Linux','1','0','0','0','0','0'),
('0','5','5','Linux','1','0','1','1','0','0'),
('0','2','3','Linux','1','1','1','0','0','0'),
('0','2','3','Linux','1','1','0','1','1','1'),
('0','2','3','Linux','0','0','1','0','0','0'),
('0','2','3','Linux','1','1','1','1','1','0'),
('0','2','1','Linux','1','1','1','1','1','1'),
('0','2','1','Linux','1','1','0','1','1','0');

SELECT linux_distro
FROM linux_distro LEFT JOIN NonHeadlessDistro
ON Headless
WHERE Headless ="0";

确切的错误消息显示为:

1 errors were found during analysis
1. 10 values were expected, but found 9. (near "(" at position 596)

MySQL said:
#1136 - Column count doesn't match count at row 11

使用在线 SQL 错误检查器,问题似乎在 INSERT INTO 行内,但我完全不知道为什么其中一列没有被确认,因为我已经检查了列等于 VALUES 的数量。阅读其他错误解决方案,问题通常是由于引号放错位置或缺少值/列而出现的,但就我的生活而言,我看不出我的 SQL 有什么问题。这很可能是一个非常简单的错误,因为我在第一个表中的初始错误是通过添加缺少的分号解决的。任何帮助将不胜感激。

编辑:我是盲人,我在第 11 行看不到我丢失的逗号。但是,我已经打开了另一个蠕虫 jar 头 - 在 MySQL 期望 10 个值并且只找到 9 个值之前,但是通过编辑它现在需要 11 个值,但只能找到 10 个。它现在还影响来自

的所有 24 行
INSERT INTO NonHeadlessDistro (Headless, Proprietary, EaseInstall, 
SimilarTo, Gnome, KDE, LXDE, XFCE, MATE, Cinna)

进入决赛

('0','2','1','Linux','1','1','0','1','1','0'); 

行,所以我将相同的错误复制了 24 次。我猜这里可能存在一个非常基本的问题:

MySQL said:
#1136 - Column count doesn't match value count at row 1

最佳答案

这一行

('0','1','4','Linux' '1','1','0','0','0','0'),

少了一个逗号

关于mysql - SQL 错误 "Column count doesn' t 匹配行的值计数”- 但我已检查列数是否等于值数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49757353/

相关文章:

php - 即使在使用 mysqli_real_escape_string 之后,数据库也不允许特殊字符

sql - 在sqlite中选择一个特定的索引行

MySQL - 选择共享相同 id 的所有行,每行包含一个等于 null 的列

php - 用正则表达式防止SQL注入(inject)?

mysql - 检查数据库中以出生日期格式存储在列中的值

javascript - 在node js中显示从MySQL数据库检索的数据

mysql - MySQL 中的基本查询出乎意料地慢

php - 脚本显示进度 php

MySQL if语句条件连接

sql - 如何将一个字段的日期与另一字段的时间合并 - MS SQL Server