Atualize o campo mysql usando CONCAT e SELECT
EDITAR
Depois de remover meu erro bobo deINTO
(Eu estava trabalhando com INSERTS e continue) o erro abaixo está sendo exibido. Ainda não funciona:
Linhas afetadas: 0
[Err] 1093 - Você não pode especificar a tabela de destino 'tbl' para atualização na cláusula FROM
Estou tentando criar uma atualização em que seleciono todos os dados anteriores na coluna, adiciono uma sequência complementar e salve-a como novos dados. O código está abaixo (com o erro)
Usando apenas o select, o resultado:
set @id = 3;
SELECT tbl_alias.string_id
FROM tbl as tbl_alias
WHERE id = @id
-- the output `3,10,8,9,4,1,7,11,5,2,6,12`
Eu também tentei com esta consulta (a saída é o que eu quero)
SELECT CONCAT((
SELECT tbl_alias.string_id
FROM tbl as tbl_alias
WHERE id = @id
),',13,14,15,16') AS X
-- the output `3,10,8,9,4,1,7,11,5,2,6,12,13,14,15,16`
Mas depois de substituir a seleção abaixo. Traz o mesmo erro.
A pergunta
set @id = 3;
UPDATE INTO tbl
SET string_id =
CONCAT((
SELECT tbl_alias.string_id
FROM tbl as tbl_alias
WHERE id = @id
),',13,14,15,16') WHERE id = @id;
O erro
[Err] 1064 - Você tem um erro na sua sintaxe SQL; verifique o manual que corresponde à versão do servidor MySQL para a sintaxe correta a ser usada perto de 'INTO tbl SET string_id = CONCAT ((SELECT tbl_alias.string_id' na linha 1
Provavelmente é oCONCAT
junto comSELECT
. Mas não encontrei a solução ...