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

busquedas en SQL?

Estas en el tema de busquedas en SQL? en el foro de Mysql en Foros del Web. hola.. me ayudarian a lograr una buena busqueda en MYSQL? tango la base de datos usuarios .id .nombre .apellido y quiero buscar a la persona ...
  #1 (permalink)  
Antiguo 19/06/2009, 10:20
Avatar de dieguicho  
Fecha de Ingreso: noviembre-2001
Ubicación: Buenos Aires
Mensajes: 1.190
Antigüedad: 22 años, 5 meses
Puntos: 1
busquedas en SQL?

hola.. me ayudarian a lograr una buena busqueda en MYSQL?

tango la base de datos usuarios
.id
.nombre
.apellido

y quiero buscar a la persona 'diego gomez'

pero tengo este SQL
Código PHP:
SELECT FROM usuarios WHERE nombre '%diego gomez%' OR apellido 'diego gomez' 
logicamente no me lo encuentra...
pero si quiero buscar 'gomez' si me funciona

Código PHP:
SELECT FROM usuarios WHERE nombre '%gomez%' OR apellido 'gomez' 
no se si me explico...
__________________
On error no hago nada porque deje de fumar...
  #2 (permalink)  
Antiguo 19/06/2009, 10: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: busquedas en SQL?

Utiliza like en vez de igual.

Código mysql:
Ver original
  1. SELECT * FROM usuarios WHERE nombre like '%diego gomez%' OR apellido like 'diego gomez'

Dinos si es lo que buscas
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 19/06/2009, 10:32
Avatar de dieguicho  
Fecha de Ingreso: noviembre-2001
Ubicación: Buenos Aires
Mensajes: 1.190
Antigüedad: 22 años, 5 meses
Puntos: 1
Respuesta: busquedas en SQL?

me equivoqué yo.. efectivamente lo tengo con LIKE
pero el resultado no es el deseado

SELECT * FROM usuarios WHERE nombre LIKE '%diego gomez%' OR apellido LIKE 'diego gomez'

y no me funciona... pero si me funciona si pongo solo diego.. o pongo gomez...
__________________
On error no hago nada porque deje de fumar...
  #4 (permalink)  
Antiguo 19/06/2009, 10: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: busquedas en SQL?

Prueba así:

Código sql:
Ver original
  1. SELECT * FROM usuarios WHERE concat(nombre,apellido) LIKE '%diego gomez%';
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #5 (permalink)  
Antiguo 19/06/2009, 10:40
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: busquedas en SQL?

SELECT * FROM usuarios WHERE nombre LIKE '%diego%' AND apellido LIKE '%gomez%'

Otra vez, huesos52 y yo chocando: Es un placer, Daniel.
  #6 (permalink)  
Antiguo 19/06/2009, 10:41
Avatar de dieguicho  
Fecha de Ingreso: noviembre-2001
Ubicación: Buenos Aires
Mensajes: 1.190
Antigüedad: 22 años, 5 meses
Puntos: 1
Respuesta: busquedas en SQL?

jajaja el tema es que tengo un campo de busqueda donde el usuario escribe la palabra a buscar

si el usuario pone solo diego, o pone solo gomez funciona
pero si pone diego gomez, voy muerto...
__________________
On error no hago nada porque deje de fumar...
  #7 (permalink)  
Antiguo 19/06/2009, 10:46
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: busquedas en SQL?

jejeje... ya probaste la que te puse?

Un saludo jurena
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #8 (permalink)  
Antiguo 19/06/2009, 11:00
Avatar de dieguicho  
Fecha de Ingreso: noviembre-2001
Ubicación: Buenos Aires
Mensajes: 1.190
Antigüedad: 22 años, 5 meses
Puntos: 1
Respuesta: busquedas en SQL?

si señor.. eso funciona pero no me sirve
porque el usuario ingresa el nombre entero "diego gomez"
__________________
On error no hago nada porque deje de fumar...
  #9 (permalink)  
Antiguo 19/06/2009, 11:30
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: busquedas en SQL?

Lo de huesos52, con el simple añadido de un espacio entre nombre y apellido:
Código sql:
Ver original
  1. SELECT * FROM usuarios WHERE concat(nombre,' ',apellido) LIKE '%diego gomez%';

De todas formas, para este tipo de cosas, si usas tablas MyIsam, piensa en hacer un índice Full Text de dos columnas y buscar con match... against...

Última edición por jurena; 19/06/2009 a las 12:32
  #10 (permalink)  
Antiguo 19/06/2009, 12:03
Avatar de dieguicho  
Fecha de Ingreso: noviembre-2001
Ubicación: Buenos Aires
Mensajes: 1.190
Antigüedad: 22 años, 5 meses
Puntos: 1
Respuesta: busquedas en SQL?

yeahhh eso funciono fantasticamente!
pero de ahi se me desprende otra duda

y si en vez de ponerme 'diego gomez' me pone 'gomez diego' ?
lo soluciono agregando otra condicion mas pero alrevez? WHERE concat(apellido,' ',nombre)
__________________
On error no hago nada porque deje de fumar...
  #11 (permalink)  
Antiguo 19/06/2009, 12:19
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: busquedas en SQL?

Exactamente.
Pero como te dice jurena..
Si tu tabla es myisam, es mejor hacer uso de FULLTEXTpara realizar búsquedas.

Un saludo.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
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 23:36.