Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MYSQL正在尝试使用table1.dir中的组\u concat更新table1.grp\u dir_Mysql_Group Concat - Fatal编程技术网

MYSQL正在尝试使用table1.dir中的组\u concat更新table1.grp\u dir

MYSQL正在尝试使用table1.dir中的组\u concat更新table1.grp\u dir,mysql,group-concat,Mysql,Group Concat,我试过两种方法。一个,只是引用回它自身的子选择,然后我尝试创建一个临时表,加载所需的数据,然后从临时表中进行子选择。两者都不起作用 UPDATE t_call_details cd, (SELECT sessionid, GROUP_CONCAT(dir ORDER BY call_start SEPARATOR '|') AS gc_dir FROM t_call_details GROUP BY session

我试过两种方法。一个,只是引用回它自身的子选择,然后我尝试创建一个临时表,加载所需的数据,然后从临时表中进行子选择。两者都不起作用

UPDATE t_call_details cd,
(SELECT 
    sessionid,
        GROUP_CONCAT(dir
            ORDER BY call_start
            SEPARATOR '|') AS gc_dir
FROM
    t_call_details
GROUP BY sessionid) AS gc 
SET 
cd.overall_calldirection = gc.gc_dir
WHERE
cd.sessionid = gc.sessionid
    AND ISNULL(cd.overall_calldirection)
接下来我试着

CREATE TEMPORARY TABLE temp_t_call_details LIKE t_call_details;

INSERT INTO temp_t_call_details (id, sessionid, dir) SELECT id, sessionid, dir from t_call_details where isnull(t_call_details.overall_calldirection);

UPDATE t_call_details cd,
(SELECT 
    sessionid,
        GROUP_CONCAT(dir
            ORDER BY call_start
            SEPARATOR '|') AS gc_dir
FROM
    temp_t_call_details
GROUP BY sessionid) AS gc 
SET 
cd.overall_calldirection = gc.gc_dir
WHERE
cd.sessionid = gc.sessionid
    AND cd.year = 2018
    AND ISNULL(cd.overall_calldirection);

我刚刚收到错误代码:2013。在查询过程中,每次超过600秒,与MySQL服务器的连接中断。我认为我的代码是准确的;它应该会起作用。是否缺少一个需要更新为更大数字的超时?

恐怕,在每次更新时,没有
where
子句的子查询会对整个表执行。您需要在其中包含一个
where
子句,我怀疑在MySQL workbench中运行查询时会发生此错误;也就是说,超时发生在MySQL工作台上,而不是MySQL服务器上。@spencer7593,这也是我的怀疑,但我对MySQL WB不够熟悉,不知道在哪里可以找到超时。。。有什么想法吗?它是6.3。@revo真的;最初我有一个“where isnull(t_call_details.totall_calldirection)”,但在测试时删除了它。