提问者:小点点

MySQL插入表1(col1、col2、col3…)值(选择xxx)不工作


我按照这个线程来构建查询,但我的不工作:MySQL INSERT INTO...VALUES和SELECT这是我的查询:

INSERT INTO item_category (id,item_name,price ) VALUES
(SELECT id, item_name, price FROM item_info WHERE item_info.price >99);

这是我得到的错误信息:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT id, item_name, price FROM item_info WHERE item_info.price >99)' at line 2

共3个答案

匿名用户

用于从select查询插入表的语法不使用

INSERT INTO item_category (id, item_name, price)
SELECT id, item_name, price
FROM item_info
WHERE price > 99;

插入的形式保留用于插入文字元组,例如。

INSERT INTO item_category (id, item_name, price)
VALUES
    (1, 'some item', 99);

请注意,我们也可以使用select来表示上述插入值:

INSERT INTO item_category (id, item_name, price)
SELECT 1, 'some item', 99
FROM dual;    -- or some other table

当我们想要混合文字和实际列值时,这个技巧非常有用。

匿名用户

删除

INSERT INTO item_category (
    id
    ,item_name
    ,price
    )
SELECT id
    ,item_name
    ,price
FROM item_info
WHERE item_info.price > 99;

匿名用户

删除值,然后像这样尝试

INSERT INTO item_category (id,item_name,price )
SELECT id, item_name, price FROM item_info WHERE item_info.price >99

将工作!!