[英]Error on Insert - error code 1241. operand should contain 1 column(s)
[英]sql Error Code: 1241. Operand should contain 1 column
我是SQL新手,遇到了问题。 我已经搜索并阅读了许多有关此错误的文章,但似乎无法将任何答案与我的问题联系起来。 据我所知,我没有做同样的事情,试图在SELECT
返回2列。
INSERT INTO `countries` (
`alpha2_id`, `alpha3_id`, `numeric_id`, `common_name`,
`formal_name`, `capital`, `type_id`, `subtype_id`,
`un_admission_date`, `eu_accession_date`, `anthem`, `motto`,
`flag_name`, `seal_name`, `coa_name`
)
VALUES (
'AF', 'AFG', '004', 'Afghanistan', 'Islamic State of Afghanistan', 'Kabul',
(
SELECT id_no FROM `country_types`
WHERE `type_id`='T' AND `description`='Independent State'
),
(
SELECT id_no FROM `country_types`
WHERE `type_id`='S' AND `description`=''
),
'1946/11/19', null, 'Afghan National Anthem', '', 'af.png', '', 'af_coa.png'
);
此测试查询工作正常,但是当我尝试添加第二行时,出现SQL错误1241。
INSERT INTO `countries` (
`alpha2_id`, `alpha3_id`, `numeric_id`, `common_name`,
`formal_name`, `capital`, `type_id`, `subtype_id`,
`un_admission_date`, `eu_accession_date`, `anthem`, `motto`,
`flag_name`, `seal_name`, `coa_name`
)
VALUES (
(
'AF', 'AFG', '004', 'Afghanistan', 'Islamic State of Afghanistan', 'Kabul',
(
SELECT id_no FROM `country_types`
WHERE `type_id`='T' AND `description`='Independent State'
),
(
SELECT id_no FROM `country_types`
WHERE `type_id`='S' AND `description`=''
),
'1946/11/19', null, 'Afghan National Anthem', '', 'af.png', '', 'af_coa.png'
),
(
'AL', 'ALB', '008', 'Albania', 'Republic of Albania', 'Tirana',
(
SELECT id_no FROM `country_types`
WHERE `type_id`='T' AND `description`='Independent State'
),
(
SELECT id_no FROM `country_types`
WHERE `type_id`='S' AND `description`=''
),
'1955/12/14', null, 'Himni i Flamurit (United around the flag)', 'Ti, Shqipëri, më jep nder, më jep emrin Shqipëtar (You, Albania, give me honor, give me the name Albanian)', 'al.png', '', 'al_coa.png'
)
);
谁能看到我哪里出问题了?
编辑:我有198个国家的csv文件,我必须将其插入到mysql表中。 我无法将数据作为csv插入,因为我需要将2个文本字段( type_id
和subtype_id
)转换为int
字段。 由于我不熟悉SQL,因此我搜索了该网站并找到了要使用的语法。 单次导入效果很好,因此我再次搜索了该网站,以获取多次插入的语法。 这是我发现的格式:
INSERT INTO `countries` (col-names)
VALUES (
(data fields to insert),
(data fields to insert)
);
上面的示例是5行,可能不会以这种方式显示,我仍在学习如何设置帖子格式。 如果我可以使用2行值,那么可以添加其他196行。
我在这里放置了一个示例txt文件。 您的浏览器可能会自动换行,因此您可能需要查看源代码。
试试这个语法:
INSERT INTO countries
(
alpha2_id,
alpha3_id,
numeric_id,
common_name,
formal_name,
capital,
type_id,
subtype_id,
un_admission_date,
eu_accession_date,
anthem,
motto,
flag_name,
seal_name,
coa_name
)
VALUES (
(
'AF',
'AFG',
'004',
'Afghanistan',
'Islamic State of Afghanistan',
'Kabul',
(
SELECT id_no
FROM country_types
WHERE type_id='T'
AND description='Independent State'),
(
SELECT id_no
FROM country_types
WHERE type_id='S'
AND description=''),
'1946/11/19',
NULL,
'Afghan National Anthem',
'',
'af.png',
'',
'af_coa.png'
)
,
(
'AL', 'ALB', '008', 'Albania', 'Republic of Albania', 'Tirana',
(
SELECT id_no
FROM country_types
WHERE type_id='T'
AND description='Independent State'),
(
SELECT id_no
FROM country_types
WHERE type_id='S'
AND description=''),
'1955/12/14',
NULL,
'Himni i Flamurit (United around the flag)',
'Ti, Shqipëri, më jep nder, më jep emrin Shqipëtar (You, Albania, give me honor, give me the name Albanian)',
'al.png',
'',
'al_coa.png'
)
)
";
您的查询应如下所示
INSERT INTO countries
(
alpha2_id, alpha3_id, numeric_id,
common_name,formal_name, capital,
type_id, subtype_id, un_admission_date,
eu_accession_date, anthem, motto,
flag_name, seal_name, coa_name
)
Select 'AF', 'AFG', '004',
'Afghanistan', 'Islamic State of Afghanistan', 'Kabul',
(SELECT id_no FROM `country_types` WHERE `type_id`='T' AND `description`='Independent State')as TypeId,
(SELECT id_no FROM `country_types` WHERE `type_id`='S' AND `description`='')as subtype_id,
'1946/11/19' as un_admission_date, null,
'Afghan National Anthem', '', 'af.png','', 'af_coa.png'
/* In Column eu_accession_date You are Passing Null Please check whether
you column can contain null or not*/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.