【问题标题】:How to combine data into a temporary table in MysqlMysql中如何将数据合并到一个临时表中
【发布时间】:2012-08-16 19:07:38
【问题描述】:

我有一张很大的桌子,叫做paypal_ipn_orders。在此表中,我有 2 条重要信息,一行称为 item_name 和一行称为 sort_num。我想使用某些参数从paypal_ipn_orders 中提取记录并将它们放入一个名为temp_table 的临时表中。我知道如何选择记录如下

SELECT `item_name`, `sort_num` 
FROM `paypal_ipn_orders`
WHERE `packing_slip_printed` = 0
AND LOWER(`payment_status`) = `completed`
AND `address_name` <> ''

该查询选择了我想要移动到临时数据库的所有记录,我只是不知道该怎么做。

【问题讨论】:

    标签: mysql select temp-tables


    【解决方案1】:

    使用 MySQL 的 Insert Into Select 我在 temp 表的列中添加了通用数据类型,您需要找出表中的实际数据类型并使其相同。

    CREATE TEMPORARY TABLE temp_table (
        item_name varchar(50), 
        sort_num int
    );
    
    INSERT INTO temp_table (item_name, sort_num)
    SELECT `item_name`, `sort_num` 
    FROM `paypal_ipn_orders`
    WHERE `packing_slip_printed` = 0
    AND LOWER(`payment_status`) = `completed`
    AND `address_name` <> ''
    

    【讨论】:

    • 会自动创建临时表吗?
    • 不,您需要先创建临时表,然后在 INSERT 语句中按名称引用它。熟悉如何在 MySQL 中创建临时表?
    • 是的。如果这个答案帮助你实现了你的目标,请接受它。如果没有,请提供有关您遇到的任何问题的信息。
    • 这给了我一个mysql错误,这就是我的做法。 mysql_query ("CREATE TEMPORARY TABLE temp_table ( item_name TEXT, sort_num int ) INSERT INTO temp_table (item_name, sort_num) SELECT item_name, sort_num` FROM paypal_ipn_orders WHERE packing_slip_printed = 0 AND LOWER(payment_status) = completed AND address_name ''" ); 它在第 5 行给了我一个语法错误
    • 即使我尝试通过 php 我的管理员执行此操作,它也不起作用。创建临时表和列有效,但 INSERT INTO 无效。在被告知我需要使用UPDATE temp_table SET sort_num = 之前,我遇到了这个问题,我只是不知道该怎么做。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多