Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

eliminar caracteres de la base de datos

Estas en el tema de eliminar caracteres de la base de datos en el foro de Mysql en Foros del Web. buenas.. tengo un problema q no puedo solucionar... probe varias formas pero nada, resulta q despues de una conversion en la base de datos me ...
  #1 (permalink)  
Antiguo 15/09/2010, 12:23
 
Fecha de Ingreso: febrero-2010
Mensajes: 37
Antigüedad: 14 años, 2 meses
Puntos: 1
eliminar caracteres de la base de datos

buenas.. tengo un problema q no puedo solucionar... probe varias formas pero nada, resulta q despues de una conversion en la base de datos me quedaron carcteres del estilo..

:b357c807bc]

donde lo unico que se mantiene son el : y el ] despues adentro las letras y numeros van cambiando, y son muchisimoos.. por lo q se me hace complicado eliminarlos todos.... Por ahi empece una sentencia con expresiones regulares, pero esto ultimo no lo se hacer... SI me pueden ayudar se los agradeceria muchisimo..

saludos...
  #2 (permalink)  
Antiguo 15/09/2010, 12:29
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: eliminar caracteres de la base de datos

quieres que todos los campos que cumplan con ese patrón borre todas las letras y numeros de su interior? todos los registros de ese campo quedarían con :]?

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 15/09/2010, 12:36
 
Fecha de Ingreso: febrero-2010
Mensajes: 37
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: eliminar caracteres de la base de datos

sisi eso quiero... y en lo posible tmb borrar el :], o en su defecto el :

Pero ya con borrar lo q hay dentro (numeros y letras) me conformo..

Graciasss
  #4 (permalink)  
Antiguo 15/09/2010, 12:44
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: eliminar caracteres de la base de datos

para que no la vayas a embarrar por si no funciona utiliza transacciones.

Código SQL:
Ver original
  1. START TRANSACTION;
  2. DELETE FROM tabla WHERE campo REGEXP ':*]';

verificas que todo esté bien. Si es así
Código SQL:
Ver original
  1. COMMIT;

si hay errores y debes deshacer los cambios
Código SQL:
Ver original
  1. ROLLBACK;
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #5 (permalink)  
Antiguo 15/09/2010, 12:47
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: eliminar caracteres de la base de datos

Y por si no quieres borrar los registros sino actualizar unicamente los campos

Código SQL:
Ver original
  1. UPDATE tabla SET campo='' WHERE campo REGEXP ':*]';

Recuerda meterlo en una transacción

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #6 (permalink)  
Antiguo 15/09/2010, 12:58
 
Fecha de Ingreso: febrero-2010
Mensajes: 37
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: eliminar caracteres de la base de datos

el rollback no me funciono...

ejecute la consulta pero borro mucho mas de lo q queria.. ejecute otra consulta para probar, y despues el rollback pero nada,, .S
  #7 (permalink)  
Antiguo 15/09/2010, 13:03
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: eliminar caracteres de la base de datos

Código MySQL:
Ver original
  1. mysql> SELECT *FROM prueba_regexp;
  2. +----------------------+
  3. | campo                |
  4. +----------------------+
  5. | sdsada               |
  6. | sdsada:yi5345hk9]    |
  7. | sda:i56gdg7364fsdk9] |
  8. +----------------------+
  9. 3 rows in set (0.00 sec)
  10.  
  11. Query OK, 0 rows affected (0.00 sec)
  12.  
  13. mysql> UPDATE prueba_regexp SET campo='' WHERE campo REGEXP ':*]';
  14. Query OK, 2 rows affected (0.00 sec)
  15. Rows matched: 2  Changed: 2  Warnings: 0
  16.  
  17. mysql> SELECT *FROM prueba_regexp;
  18. +--------+
  19. | campo  |
  20. +--------+
  21. | sdsada |
  22. |        |
  23. |        |
  24. +--------+
  25. 3 rows in set (0.00 sec)
  26.  
  27. mysql> ROLLBACK;
  28. Query OK, 0 rows affected (0.00 sec)
  29.  
  30. mysql> SELECT *FROM prueba_regexp;
  31. +----------------------+
  32. | campo                |
  33. +----------------------+
  34. | sdsada               |
  35. | sdsada:yi5345hk9]    |
  36. | sda:i56gdg7364fsdk9] |
  37. +----------------------+
  38. 3 rows in set (0.00 sec)
  39.  
  40. mysql>

según entendí, eso era lo que querías. Fijate que el rollback si funciona. tal vez lo utilizaste mal

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #8 (permalink)  
Antiguo 15/09/2010, 13:31
 
Fecha de Ingreso: febrero-2010
Mensajes: 37
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: eliminar caracteres de la base de datos

sisi eso es lo queria hacer... pero resulta q me quedo la tabla a la mitad se ve q algo hice mal..

y cuando ejecto el ROLLBACK;

me pone

Su consulta se ejecutó con éxito ( La consulta tardó 0.0002 seg )

pero nada mas.. :S
  #9 (permalink)  
Antiguo 15/09/2010, 13:38
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: eliminar caracteres de la base de datos

paila... por eso te hice enfasis en utilizar transacciones. para evitar problemas como este.
Lstimosamente mysql no cuenta con herramientas como flasback de oracle y por lo visto debes recuperar los datos de un backup.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #10 (permalink)  
Antiguo 15/09/2010, 13:44
 
Fecha de Ingreso: febrero-2010
Mensajes: 37
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: eliminar caracteres de la base de datos

sisi si ejecute transacciones... de este modo lo hice..

START TRANSACTION;
DELETE FROM informes WHERE textos REGEXP ':*]';


taba mal asi???
  #11 (permalink)  
Antiguo 15/09/2010, 13:51
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: eliminar caracteres de la base de datos

Es exactamente así. Quien sabe donde la embarraste.

mira esta explicación de transacciones en el faqs de mysql del foro.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #12 (permalink)  
Antiguo 15/09/2010, 14:13
 
Fecha de Ingreso: febrero-2010
Mensajes: 37
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: eliminar caracteres de la base de datos

que raroo... Bueno para la proxima ya voy a saber como... ahora restaurando datos je

Yahora mismo me pongo a leer eso..

muchas gracias a todos por la ayuda... saludos!!
  #13 (permalink)  
Antiguo 15/09/2010, 14:15
 
Fecha de Ingreso: febrero-2010
Mensajes: 37
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: eliminar caracteres de la base de datos

una pregunta... con esta consulta
DELETE FROM informes WHERE textos REGEXP ':*]';

ahi estoy borrando toda el registro o fila donde se cumpla esa condicion no??...Por eso es q se meborro la mitad de la tabla... Puede ser???
  #14 (permalink)  
Antiguo 15/09/2010, 15:22
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: eliminar caracteres de la base de datos

si.. tenés razón. Por eso luego te puse esta
Cita:
Y por si no quieres borrar los registros sino actualizar unicamente los campos

Código SQL:
Ver originalCopiar
UPDATE tabla SET campo='' WHERE campo REGEXP ':*]';

Recuerda meterlo en una transacción

saludos
Con ese update, no te borra los registros, simplemente modifica el campo.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #15 (permalink)  
Antiguo 16/09/2010, 09:01
 
Fecha de Ingreso: febrero-2010
Mensajes: 37
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: eliminar caracteres de la base de datos

claro... yo vi el primer post y me mande,, jaj ni me puse a ver lo q estaba haciendo, Flor de sorpresa me lleve cuando me di cuenta de q se me habia borrado la mitad de la tabla.. Por suerte existen los backups....

Despues pruebo con el update a ver si solo me actualiza el :b357c807bc] y no me actuliza otra cosa..

Muchas gracias por la ayuda!!!...

Saludos!!!
  #16 (permalink)  
Antiguo 16/09/2010, 13:53
 
Fecha de Ingreso: febrero-2010
Mensajes: 37
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: eliminar caracteres de la base de datos

bueno probe... y no es lo q quiero.. seguramente nose va a poder me parece...

me remito al ejemplo q puso hueso mas arriba

Código:
#
+----------------------+
#
| campo                |
#
+----------------------+
#
| sdsada               |
#
| sdsada:yi5345hk9]    |
#
| sda:i56gdg7364fsdk9] |
#
+----------------------+
ahi seria la tabla con los datos...

Despues de la consulta queda asi..

Código:
#
+--------+
#
| campo  |
#
+--------+
#
| sdsada |
#
|        |
#
|        |
#
+--------+
y lo q yo quiero que quede es asi..
Código:
+----------------------+
#
| campo                |
#
+----------------------+
#
| sdsada               |
#
| sdsada    |
#
| sda |
#
+----------------------+
nose si me explico.... solo borrar el :i56gdg7364fsdk9].

si hay una palabra del tipo -->> hola:i56gdg7364fsdk9] como andas??

que quede solo-->> hola como andas??


igualmente muchas gracias!!
  #17 (permalink)  
Antiguo 16/09/2010, 14:39
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: eliminar caracteres de la base de datos

Código MySQL:
Ver original
  1. mysql> SELECT *FROM prueba_regexp;
  2. +------------------------------------+
  3. | campo                              |
  4. +------------------------------------+
  5. | sdsada                             |
  6. | sdsada:yi5345hk9]                  |
  7. | sda:i56gdg7364fsdk9]               |
  8. | hola:i56gdg7364fsdk9] como andas?? |
  9. +------------------------------------+
  10. 4 rows in set (0.00 sec)
  11.  
  12. mysql> SELECT REPLACE(campo,SUBSTRING(campo,LOCATE(':',campo),LOCATE(']',campo)-(LOCATE(':',campo)-1)),'') sin_cosas_raras FROM prueba_regexp;
  13. +-------------------+
  14. | sin_cosas_raras   |
  15. +-------------------+
  16. | sdsada            |
  17. | sdsada            |
  18. | sda               |
  19. | hola como andas?? |
  20. +-------------------+
  21. 4 rows in set (0.00 sec)
  22.  
  23. mysql> UPDATE prueba_regexp SET campo=REPLACE(campo,SUBSTRING(campo,LOCATE(':',campo),LOCATE(']',campo)-(LOCATE(':',campo)-1)),'');
  24. Query OK, 3 rows affected (0.00 sec)
  25. Rows matched: 4  Changed: 3  Warnings: 0
  26.  
  27. mysql> SELECT *FROM prueba_regexp;
  28. +-------------------+
  29. | campo             |
  30. +-------------------+
  31. | sdsada            |
  32. | sdsada            |
  33. | sda               |
  34. | hola como andas?? |
  35. +-------------------+
  36. 4 rows in set (0.00 sec)


con esta si.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #18 (permalink)  
Antiguo 16/09/2010, 16:42
 
Fecha de Ingreso: febrero-2010
Mensajes: 37
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: eliminar caracteres de la base de datos

uh buenisimoo.... ni cerca de hacer algo como eso..

te re agradezco por toda tu ayuda...

mañana lo estoy probando y comento los resultados..

Muchisimas gracias!!!

Etiquetas: caracteres, eliminar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:27.