Eu tenho uma coluna que contém valores de string no formato, por exemplo AB12345678
- duas letras seguidas de 8 dígitos numéricos.
Eu preciso escrever uma consulta MySQL para inserir um 5
antes de cada conjunto de 4 dígitos AB12345678
se tornar AB5123455678
.
Estou perto, o seguinte funciona para um valor na coluna, mas não para vários valores - todos os valores são escritos com o mesmo primeiro valor encontrado, ao que parece.
SELECT @twoeight := os_grid_ref FROM projects WHERE os_grid_ref REGEXP '[A-Z]{2}[0-9]{4}[0-9]{4}';
SELECT @prefix1 := SUBSTR(@twoeight,1,2);
SELECT @part1 := SUBSTR(@twoeight,3,4);
SELECT @part2 := SUBSTR(@twoeight,7,4);
UPDATE projects SET os_grid_ref=CONCAT(@prefix1,'5',@part1,'5',@part2) WHERE os_grid_ref REGEXP '[A-Z]{2}[0-9]{4}[0-9]{4}';
O que preciso ajustar para que a consulta possa modificar cada valor da coluna individualmente.
Obrigado.