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

Mostrar campo Numérico con Espacio

Estas en el tema de Mostrar campo Numérico con Espacio en el foro de Mysql en Foros del Web. Que tal, Concreto: Tengo campos con numero telefónicos. y los muestro por ejemplo: Código PHP: Select phone from contactos where contacto_id = 35  Y me Sale: Código PHP: 2147483  Un ...
  #1 (permalink)  
Antiguo 24/11/2005, 15:17
 
Fecha de Ingreso: octubre-2005
Mensajes: 365
Antigüedad: 18 años, 6 meses
Puntos: 0
Mostrar campo Numérico con Espacio

Que tal,

Concreto:

Tengo campos con numero telefónicos. y los muestro por ejemplo:

Código PHP:
Select phone from contactos where contacto_id=35 
Y me Sale:

Código PHP:
2147483 

Un usuario caprichoso quiere que miestre los telefonos de forma mas bonita, es decir los tres primeros numeros separados con un espacio y luego si los 5 numero siguientes como:

Código PHP:
214 7483 
Colo lo hago ?

No tengo la menor idea.

Uso Mysql 4.1

Gracias de Antemano y Saludos.
  #2 (permalink)  
Antiguo 24/11/2005, 15:37
Avatar de Linterns
Colaborador
 
Fecha de Ingreso: diciembre-2001
Mensajes: 2.799
Antigüedad: 22 años, 4 meses
Puntos: 11
a ver si no me equivoco con la sintaxis al vuelo:

Código:
Select concat ( LEFT(phone, 3)  , " " , RIGHT(phone, 4)) as mitelefono
from contactos 
where contacto_id=35
__________________
Bien se puede recibir una puñalada sin adulación,
pero rara vez se recibe una adulación sin puñalada
** ***
  #3 (permalink)  
Antiguo 25/11/2005, 08:25
 
Fecha de Ingreso: octubre-2005
Mensajes: 365
Antigüedad: 18 años, 6 meses
Puntos: 0
Intento esto y no funciona, busqué referencia en mysql.com pero no pillé nada similar.

Código PHP:
SELECT concat LEFT(phone3)  , " " RIGHT(phone7)) as telefono
from provider where provider_id
=57 

Saludos.
  #4 (permalink)  
Antiguo 25/11/2005, 10:18
Avatar de Linterns
Colaborador
 
Fecha de Ingreso: diciembre-2001
Mensajes: 2.799
Antigüedad: 22 años, 4 meses
Puntos: 11
que raro que me separo todo.... probaste juntando el codigo:

Código:
SELECT concat(LEFT(phone, 3),"  ",RIGHT(phone, 7)) as telefono
from provider where provider_id=57
a ver.... ocupo tres tipos de funciones

CONCAT(str1,str2,...) que lo que hace es concatenar los diferentes String ej:

mysql> SELECT CONCAT('My', 'S', 'QL');
-> 'MySQL'

LEFT(str,len) que retorna del string la cantidad de caracteres a la izquierda

RIGHT(str,len) identico que el Left pero son caracteres a la Derecha


NOTA: intenta probar cada una de las fucniones por separados a ver cual es la que te arroja el error, por ejemplo primero solo el LEFT, luego el RIGHT y por ultimo intenta concatenar unas variable de Strin como el ejemplo que te he puesto
__________________
Bien se puede recibir una puñalada sin adulación,
pero rara vez se recibe una adulación sin puñalada
** ***
  #5 (permalink)  
Antiguo 25/11/2005, 10:23
 
Fecha de Ingreso: octubre-2005
Mensajes: 365
Antigüedad: 18 años, 6 meses
Puntos: 0
Tenéis Razón, que juntando el codigo si funciona.

Código PHP:
SELECT concat(LEFT(phone3),"  ",RIGHT(phone7)) as telefono
from provider where provider_id
=57 
la verdad no he visto la referencia de RIGHT en mysql.com..........para algo más generico, es decir, tengo unos telefonos de 10 otros de 9 etc........

se puede dejar los 3 primeros un espacio y luego el "resto" ???

Saludos.
  #6 (permalink)  
Antiguo 25/11/2005, 10:32
Avatar de Linterns
Colaborador
 
Fecha de Ingreso: diciembre-2001
Mensajes: 2.799
Antigüedad: 22 años, 4 meses
Puntos: 11
Puedes ocupar el MID

MID(str,pos,len)

donde pos es la posicion desde donde quieres iniciar y Len la cantidad de Caracteres

algo asi como:

MID(phone,1,3) para los primeros tres caracteres
MID(phone,4,10) para el final

Si mal no recuerdo al poner una cantidad mucho mayor de caracteres de los que vas a traer te extrae hasta el final.

Ejemplo: si tienes la palabra LINTERNS y le das MID('LINTERNS',5,25) te debera extraer desde el caracter 5 (la letra E) hasta la S... es decir "ERNS"


verifica la posicion inicial si inica a contar con cero o con uno que siempre me confundo con Oracle :p
__________________
Bien se puede recibir una puñalada sin adulación,
pero rara vez se recibe una adulación sin puñalada
** ***
  #7 (permalink)  
Antiguo 28/11/2005, 08:18
 
Fecha de Ingreso: octubre-2005
Mensajes: 365
Antigüedad: 18 años, 6 meses
Puntos: 0
Que tal Master, esto me funciona a la perfeción:

Código PHP:
SELECT MID(phone,1,3), MID(phone,4,100) as telefono
from provider where provider_id
=57 
Pero cuando lo intento concatenar no me funciona:


Código PHP:
SELECT CONCAT (MID(phone,1,3))," ", (MID(phone,4,100)) as telefono
from provider where provider_id
=57 
Yo lo veo bien.......que sera ???

Gracias, Saludos.
  #8 (permalink)  
Antiguo 28/11/2005, 08:24
 
Fecha de Ingreso: octubre-2005
Mensajes: 365
Antigüedad: 18 años, 6 meses
Puntos: 0
Ya me acaba de funcionar, el detalle, no dejar espacio entre CONCAT_loquesiga


Código PHP:
SELECT CONCAT(MID(phone,1,3)," ",MID(phone,4,100)) as telefono
from provider where provider_id
=57 
  #9 (permalink)  
Antiguo 28/11/2005, 10:24
Avatar de Linterns
Colaborador
 
Fecha de Ingreso: diciembre-2001
Mensajes: 2.799
Antigüedad: 22 años, 4 meses
Puntos: 11
__________________
Bien se puede recibir una puñalada sin adulación,
pero rara vez se recibe una adulación sin puñalada
** ***
  #10 (permalink)  
Antiguo 28/11/2005, 11:20
 
Fecha de Ingreso: octubre-2005
Mensajes: 365
Antigüedad: 18 años, 6 meses
Puntos: 0
Bien Master, el punto es que ultimamente ando lento para el SQL, je, je.
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 21:07.