MYSQL Попытка обновить table1.grp_dir с помощью group_concat из table1.dir - PullRequest
0 голосов
/ 12 июня 2018

Я пробовал два способа.Во-первых, просто возвращаясь к самому себе для подвыбора, затем я попытался создать временную таблицу, загрузить необходимые данные и затем выделить из этой временной таблицы.Ни один из них не сработал.

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. Потеря соединения с сервером MySQL во время запроса чуть более 600 секунд каждый раз,Я думаю, что мой код точен;он должен работать.Не хватает ли тайм-аута для обновления на большее число?

...