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

Uso de REPLACE('',' ','') estoy aplicando correctamente?

Estas en el tema de Uso de REPLACE('',' ','') estoy aplicando correctamente? en el foro de Mysql en Foros del Web. Hola amigos, Vereis, estoy haciendo una consulta la cosa es que necesito que el valor de la base de datos lo busque sin espacios para ...
  #1 (permalink)  
Antiguo 10/09/2013, 05:12
 
Fecha de Ingreso: marzo-2007
Mensajes: 751
Antigüedad: 17 años, 8 meses
Puntos: 4
Uso de REPLACE('',' ','') estoy aplicando correctamente?

Hola amigos,

Vereis, estoy haciendo una consulta la cosa es que necesito que el valor de la base de datos lo busque sin espacios para esto estoy usando: REPLACE('ed.nombre',' ','') para que cuando reciba la variable = Hebecazorla lo encuentre en la base de datos que esta guardado como Hebe cazorla


Esta es la consulta en cuestion:

Código MySQL:
Ver original
  1. Select md.id, md.descripcion, md.logo, md.id_categorias as categoria_comercio, md.web, md.longitud, md.latitud, md.email_cliente as email_misdatos, md.horario, md.id_agrupaciones, md.twitter, md.facebook, ed.id as id_direccion, ed.nombre as nombre_direccion, ed.direccion, ed.telefono, ed.id_municipios, ed.id_provincias, ed.cp, ed.email as email_direccion, e.id, e.id_mis_datos, a.id as id_categorias, a.descripcion as descripcion_categorias, c.id as id_descuentos, c.id_empresas, c.descuento, c.limitaciones, c.fecha_desde, c.fecha_hasta
  2. FROM empresas_direcciones ed
  3. INNER JOIN empresas e On ed.id_empresas = e.id
  4. INNER JOIN misdatos md On md.id = e.id_mis_datos
  5. LEFT JOIN agrupaciones a On a.id = md.id_agrupaciones
  6. LEFT JOIN empresas_descuentos c On c.id_empresas = ed.id_empresas
  7. Where REPLACE('ed.nombre',' ','') = 'Hebecazorla'
  8. ORDER BY id_descuentos DESC LIMIT 1

A ver si alguien sabe como podria hacer esto.

Un saludo!!

Última edición por gnzsoloyo; 10/09/2013 a las 06:56
  #2 (permalink)  
Antiguo 10/09/2013, 07:09
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Uso de REPLACE('',' ','') estoy aplicando correctamente?

Por lo pronto, estás poniendo mal el nombre del campo evaluado en el REPLACE(). Los apóstrofes son para cadenas de texto, no para nombres de campos o tablas. Lo que pusiste busca los espacios dentro de una cadena que dice "ed.nombre", no dentro del campo correspondiente.
Por otro lado, ¿por qué razón llega la cadena sin espacios? ¿No sería más sencillo que busque exactamente el texto que necesitas.
Finalmente: Ten cuidado con los LEFT JOIN, si se genera un JOIn en estrella, los resultado pueden ser erróneos.
Código MySQL:
Ver original
  1.     md.id,
  2.     md.descripcion,
  3.     md.logo,
  4.     md.id_categorias categoria_comercio,
  5.     md.web,
  6.     md.longitud,
  7.     md.latitud,
  8.     md.email_cliente email_misdatos,
  9.     md.horario,
  10.     md.id_agrupaciones,
  11.     md.twitter,
  12.     md.facebook,
  13.     ed.id id_direccion,
  14.     ed.nombre nombre_direccion,
  15.     ed.direccion,
  16.     ed.telefono,
  17.     ed.id_municipios,
  18.     ed.id_provincias,
  19.     ed.cp,
  20.     ed.email email_direccion,
  21.     e.id,
  22.     e.id_mis_datos,
  23.     a.id id_categorias,
  24.     a.descripcion descripcion_categorias,
  25.     c.id id_descuentos,
  26.     c.id_empresas,
  27.     c.descuento,
  28.     c.limitaciones,
  29.     c.fecha_desde,
  30.     c.fecha_hasta
  31. FROM empresas_direcciones ed
  32.     INNER JOIN empresas e ON ed.id_empresas = e.id
  33.     INNER JOIN misdatos md ON md.id = e.id_mis_datos
  34.     LEFT JOIN agrupaciones a ON a.id = md.id_agrupaciones
  35.     LEFT JOIN empresas_descuentos c ON c.id_empresas = ed.id_empresas
  36. WHERE REPLACE(ed.nombre,' ','') = 'Hebecazorla'
  37. ORDER BY id_descuentos DESC
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: join, replace, select
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 13:55.