php - mysql-php,创建临时表时出错

标签 php mysql create-table temp-tables

我终于准备好将查询插入代码,但现在在运行整个查询时出现错误。我相信这与删除表功能有关。我最初让它们内联,然后读到我应该删除它并像这样在查询的开头添加:

    $query = $this->db->query("DROP TABLE IF EXISTS resultx;");
    $query = $this->db->query("DROP TABLE IF EXISTS resulty;");

$query = $this->db->query("
 CREATE TEMPORARY TABLE resultx AS
 select *, CONCAT(Credit,'_',OrderStat) as consol from (..........

我正在创建两个临时表,然后在最后一个查询中加入它们。我不确定如何将第二个 DROP 临时表放回完整查询中,或者这是否是正确的方法。 我得到的错误是:

A Database Error Occurred
Error Number: 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 'CREATE TEMPORARY TABLE resulty AS select packetDeet,Sales,SaleDate, UserID,Lead' at line 15

查询:

CREATE TEMPORARY TABLE resultx AS 
    select 
        *,
        CONCAT(Credit,'_',OrderStat) as consol 
    FROM 
        ( select 
              packetDetailsId, GROUP_CONCAT(Credit) AS Credit,
              GROUP_CONCAT(AccountNum) AS AccountNum,
              GROUP_CONCAT(OrderStat) AS OrderStat 
          FROM 
             ( SELECT 
                   pd_extrafields.packetDetailsId, 
                   CASE WHEN 
                       pd_extrafields.ex_title LIKE ('%Credit%') 
                       THEN pd_extrafields.ex_value 
                       ELSE NULL 
                   END as Credit, 
                  CASE WHEN 
                       pd_extrafields.ex_title LIKE ('%Account%') 
                       THEN pd_extrafields.ex_value 
                       ELSE NULL 
                  END as AccountNum, 
                 CASE WHEN 
                       pd_extrafields.ex_title LIKE ('%Existing%') 
                       THEN pd_extrafields.ex_value 
                       ELSE NULL 
                 END as OrderStat 
               FROM pd_extrafields 
             ) AS myalias 
          GROUP BY packetDetailsId 
        )as TempTab; 
CREATE TEMPORARY TABLE resulty AS select packetDeet,Sales,SaleDate, .........

请让我知道这是否有意义,或者我需要用更多信息更新问题。

最佳答案

如果您尝试在对 $this->db->query() 的一次调用中执行这两个查询,问题可能是您的数据库库不允许多个查询。

要查看这是否是问题所在,您应该将它们分成两个单独的查询。

关于php - mysql-php,创建临时表时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15395041/

相关文章:

PostgreSQL 选择 INTO 函数

PHP DOMDocument 无法处理 utf-8 字符 (☆)

php - 如何使用外键同时向2个mysql表插入数据

php - 使用 JS 扩展表单字段

PHP 函数返回零

php - 连接两个表并仅输出第一个表中存在的行

php.ini block PHP PDO

Mysql 按 y 列的字母顺序排列所有具有 null x 列的行,然后按 y 列的字母顺序排列所有没有 null x 列的行

mysql - 创建新表时如何添加外键?

mysql - 使用单人表来存储和显示相关的家庭成员