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

eliminar espacio al comienzo y final

Estas en el tema de eliminar espacio al comienzo y final en el foro de Mysql en Foros del Web. hola uso estas dos para cuando es un campo vacio o nulo UPDATE contactos SET direccion='SIN DIRECCION' WHERE direccion IS NULL; UPDATE contactos SET direccion='SIN ...
  #1 (permalink)  
Antiguo 24/09/2009, 13:56
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 22 años, 3 meses
Puntos: 4
eliminar espacio al comienzo y final

hola uso estas dos
para cuando es un campo vacio o nulo
UPDATE contactos SET direccion='SIN DIRECCION' WHERE direccion IS NULL;
UPDATE contactos SET direccion='SIN DIRECCION' WHERE direccion='';

quiero ke cuando comience la palabra y tenga un espacio al principio lo quite pero si tiene espacio en la mitad no lo quite
como puedo hacer eso?


por ejemplo
"HOLA JUAN" no quita espacio
" HOLA JUAN" quita espacio al principio
"HOLA JUAN " quita espacio al final.

si usara esta
UPDATE contactos SET direccion= REPLACE(direccion,' ','');me quitaria todos los espacios sin importar su ubicacion danandome los datos.
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #2 (permalink)  
Antiguo 24/09/2009, 14:21
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 espacio al comienzo y final

Código sql:
Ver original
  1. UPDATE contactos SET direccion=SUBSTRING(direccion,2) WHERE LEFT(direccion,1)=' ';

Esto solo elimina un espacio siempre y cuando exista en el campo.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 24/09/2009, 14:24
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 22 años, 3 meses
Puntos: 4
Respuesta: eliminar espacio al comienzo y final

gracias me estas ayudando mucho
que es substring?

a veces tienen mas de 1 espacio al comienzo tambien funcionaria?
es decir

Código EJEMPLO:
Ver original
  1. "       HOLA JUAN"
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #4 (permalink)  
Antiguo 24/09/2009, 14:54
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 espacio al comienzo y final

Cita:
que es substring?
Es una función que recoge parte de una cadena. El parametro 2 es para establecer que debe comenzar la cadena desde el espacio 2.

Cita:
a veces tienen mas de 1 espacio al comienzo tambien funcionaria?
No. Debes ejecutar la misma sentencia cuantas veces sea necesario.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #5 (permalink)  
Antiguo 24/09/2009, 14:55
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 22 años, 3 meses
Puntos: 4
Respuesta: eliminar espacio al comienzo y final

ok muchisimas gracias.. lo hare asi entonces.
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #6 (permalink)  
Antiguo 24/09/2009, 15:15
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: eliminar espacio al comienzo y final

Para eso existe la función TRIM() en 12.3. Funciones para cadenas de caracteres
Según el manual de referencia de MySQL:
Cita:
TRIM([{BOTH | LEADING | TRAILING} [remstr] FROM] str), TRIM(remstr FROM] str)

Retorna la cadena str con todos los prefijos y/o sufijos remstr eliminados. Si ninguno de los especificadores BOTH, LEADING, o se daTRAILING, BOTH se asumen. Si remstr es opcional y no se especifica, los espacios se eliminan.

mysql> SELECT TRIM(' bar ');
-> 'bar'
mysql> SELECT TRIM(LEADING 'x' FROM 'xxxbarxxx');
-> 'barxxx'
mysql> SELECT TRIM(BOTH 'x' FROM 'xxxbarxxx');
-> 'bar'
mysql> SELECT TRIM(TRAILING 'xyz' FROM 'barxxyz');
-> 'barx'

Esta función trabaja con múltiples bytes.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
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 12:18.