簡體   English   中英

sql錯誤代碼:1241。操作數應包含1列

[英]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_idsubtype_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM