MySQL - Aumento de código

 
Vista:

Aumento de código

Publicado por Fran (3 intervenciones) el 04/09/2023 16:23:33
Buenos días, me gustaría saber si alguien me puede ayudar con un problema que tengo con mySQL donde mi conocimiento se queda escaso.
Tengo un mysql server, y necesito modificar la fecha de una de las casillas, el problema es que la fecha viene de la siguiente forma 2022P91K y el siguiente es 2022P92K, así sucesivamente, pues necesito que la fecha cambie de 2022P92K a 2023P92K en 2000 filas....
Sé el comando para cambiar filas enteras, pero sólo para modificar los 4 primeros dígitos sin modificar lo demás no sé hacerlo. Agradezco mucho lo que me puedan aportar
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro
Val: 8
Ha aumentado su posición en 9 puestos en MySQL (en relación al último mes)
Gráfica de MySQL

Aumento de código

Publicado por Alejandro (21 intervenciones) el 05/09/2023 19:30:29
  • Alejandro se encuentra ahora conectado en el
  • chat de PHP
Te entiendo que sería así
1
2
3
4
5
// Primero compruebas
SELECT campo AS antes,  CONCAT(2023, right(campo, 4)) AS despues FROM tabla WHERE LEFT(campo, 4) = 2022
 
// Si es lo que quieres, actualizas
UPDATE tabla SET campo=CONCAT(2023, LEFT(campo, 4)) WHERE LEFT(campo, 4) = 2022
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Aumento de código

Publicado por Fran (3 intervenciones) el 05/09/2023 19:44:13
Lo primero de todo muchas gracias por la respuesta, el problema es que con ese código me cambia todas las tablas con el mismo nombre de forma que queda repetido.
Lo que necesito es que me deje después de 2023, el mismo código que tenía anteriormente.
De la forma que me has comentado ha quedado de la siguiente forma

campo1 | campo2
2022p92k 20232022
2022p93k 20232022
2022p94k 20232022
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Alejandro
Val: 8
Ha aumentado su posición en 9 puestos en MySQL (en relación al último mes)
Gráfica de MySQL

Aumento de código

Publicado por Alejandro (21 intervenciones) el 05/09/2023 20:30:19
  • Alejandro se encuentra ahora conectado en el
  • chat de PHP
Comprende la consulta, compara el SELECT con el UPDATE.
He cometido el error de cambiar el RIGHT por LEFT en el UPDATE

Right extrae los caracteres desde la derecha hacia la izquierda
1
SELECT RIGHT('2022p92k', 4) = 'p92k'

Concat une cadenas de caracteres
1
CONCAT(2023, 'p92k') = 2023p92k

El problema que realmente veo es cuando son mas de 2 dígitos 2022p100k el RIGTH te dejara 100K perdiendo la "p" por lo que lo correcto sería extraer la cadena a partir del 5 carácter
1
CONCAT(2023, MID('2022p100k', 5, CHAR_LENGTH('2022p100k')-4))
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Aumento de código

Publicado por Fran (3 intervenciones) el 05/09/2023 20:31:56
Muchas gracias por la respuesta, creo que ya lo tengo arreglado. Muchísimas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar