的MySQL-PHP,上创建临时表
问题描述:
错误,我终于得到了我的查询准备插入代码,但运行整个查询的时候,现在我得到一个错误。我相信它与drop table功能有关。我本来他们行内,然后读,我应该将其删除,并在查询的开头添加像这样:的MySQL-PHP,上创建临时表
$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()
两个查询的问题可能是你的数据库库不允许多个查询。
,看看是否有问题,你应该在两个单独的查询拆分起来。
检查不可见的字符像BOM。 – Barmar 2013-03-13 20:16:25
感谢您清理UnholyRanger和Barmar的建议,我会研究这个建议。 – alex 2013-03-13 20:41:26