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

Búsqueda múltiple en MySQL no funciona

Estas en el tema de Búsqueda múltiple en MySQL no funciona en el foro de Mysql en Foros del Web. estoy haciendo un campo de búsqueda para que la gente busque productos utilizando dos campos en MySQL, el problema es que con la siguiente sintaxis ...
  #1 (permalink)  
Antiguo 30/07/2012, 09:49
 
Fecha de Ingreso: diciembre-2008
Mensajes: 738
Antigüedad: 15 años, 4 meses
Puntos: 15
Búsqueda múltiple en MySQL no funciona

estoy haciendo un campo de búsqueda para que la gente busque productos utilizando dos campos en MySQL, el problema es que con la siguiente sintaxis solo busca uno ¿Qué estoy haciendo mal?

SELECT * FROM hoja1 WHERE Concepto LIKE '%$buscar%' or Modelo LIKE '%$buscar%'
  #2 (permalink)  
Antiguo 30/07/2012, 09:55
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, 4 meses
Puntos: 2658
Respuesta: Búsqueda múltiple en MySQL no funciona

En realidad te debe estar devolviendo con uno o con los dos campos. Pero recuerda que un operador disyuntivo como OR sólo requiere que al menos uno de los dos sea verdadero para que se cumpla la condición.
Si quieres que evalúe los dos si o sí, debes usar AND, no OR.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 30/07/2012, 09:59
 
Fecha de Ingreso: diciembre-2008
Mensajes: 738
Antigüedad: 15 años, 4 meses
Puntos: 15
Respuesta: Búsqueda múltiple en MySQL no funciona

No, ni con el AND se puede, solo me devuelve el resultado de la primera tabla
  #4 (permalink)  
Antiguo 30/07/2012, 10:07
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, 4 meses
Puntos: 2658
Respuesta: Búsqueda múltiple en MySQL no funciona

Cita:
Iniciado por alvarols Ver Mensaje
No, ni con el AND se puede, solo me devuelve el resultado de la primera tabla
¿Qué primera tabla?
Tu consulta sólo está usando una única tabla...
Si no devuelve más que un registro es que sólo un registro cumple la condición. Nada más...

No podemos darte mucha ayuda adicional, porque no conocemos los datos que tienes, ni qué valores estás metiendo en las variables (variables de programación son off-topic y generan confusiones).
¿Podrías postear datos de ejemplo y valores probados?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 30/07/2012, 10:15
 
Fecha de Ingreso: diciembre-2008
Mensajes: 738
Antigüedad: 15 años, 4 meses
Puntos: 15
Respuesta: Búsqueda múltiple en MySQL no funciona

Con el OR me devuelve ya algunos datos de la tabla modelo pero solo en algunos casos. Por ejemplo, tengos valores en la tabla modelo:

8345GS
FLEX AUT 1

Si pongo en la búsqueda 8345GS no me devuelve ningún resultado, me aparece totalmente en blanco.

Si busco "Flex" si me devuelve el resultado
  #6 (permalink)  
Antiguo 30/07/2012, 17:51
Avatar de dontexplain  
Fecha de Ingreso: junio-2012
Mensajes: 536
Antigüedad: 11 años, 10 meses
Puntos: 127
Respuesta: Búsqueda múltiple en MySQL no funciona

Comprueba qué error te devuelve, si lo hace,

SELECT * FROM hoja1 WHERE Concepto LIKE '%$buscar%' or Modelo LIKE '%$buscar%' or die(mysql_error());

y además, comprueba que no haya saltos de línea o espacios tras o delante del texto.

Un saludo.
__________________
21añero.
HTML/CSS, PHP, JS/jQuery, Mysql; NodeJS/Socket.io (& V8); C++ ; Python (wxpy); Ensamblador.
Músico (clarinetista/pianista) y compositor
  #7 (permalink)  
Antiguo 30/07/2012, 20:07
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, 4 meses
Puntos: 2658
Respuesta: Búsqueda múltiple en MySQL no funciona

Cita:
Iniciado por alvarols Ver Mensaje
Con el OR me devuelve ya algunos datos de la tabla modelo pero solo en algunos casos. Por ejemplo, tengos valores en la tabla modelo:

8345GS
FLEX AUT 1

Si pongo en la búsqueda 8345GS no me devuelve ningún resultado, me aparece totalmente en blanco.

Si busco "Flex" si me devuelve el resultado
¿De qué tabla "modelo" estás hablando?
Según tu ejemplo:
Código MySQL:
Ver original
  1. FROM hoja1
  2. WHERE Concepto LIKE '%$buscar%' or Modelo LIKE '%$buscar%';
Tu tabla se llama "HOJA1" y tanto "modelo" como "concepto" son columnas de esa tabla...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #8 (permalink)  
Antiguo 30/07/2012, 20:25
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, 4 meses
Puntos: 2658
Respuesta: Búsqueda múltiple en MySQL no funciona

Tomando como cierto el modelo que se infiere en el primer post, podemos probar tu afirmación creando la tablas
Código MySQL:
Ver original
  1. mysql> DROP TABLE IF EXISTS hoja1;
  2. Query OK, 0 rows affected (0.16 sec)
  3.  
  4. mysql> CREATE TABLE IF NOT EXISTS hoja1
  5.     ->     (TABLA_ID INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  6.     ->     CONCEPTO VARCHAR(50),
  7.     ->     MODELO VARCHAR(50));
  8. Query OK, 0 rows affected (0.01 sec)
Luego cargamos datos como los que mencionas:
Código MySQL:
Ver original
  1. mysql> INSERT INTO hoja1(CONCEPTO, MODELO)
  2.     -> VALUES('AAAAAA', 'FLEX AUT 1'), ('AAAA', '8345GS');
  3. Query OK, 2 rows affected (0.00 sec)
  4. Records: 2  Duplicates: 0  Warnings: 0
Y finalmente probamos la consulta que dices al principio:
Código MySQL:
Ver original
  1. mysql> SELECT *
  2.     -> FROM hoja1
  3.     -> WHERE Concepto LIKE '%8345GS%' or Modelo LIKE '%8345GS%';
  4. +----------+----------+--------+
  5. | TABLA_ID | CONCEPTO | MODELO |
  6. +----------+----------+--------+
  7. |        2 | AAAA     | 8345GS |
  8. +----------+----------+--------+
  9. 1 row in set (0.00 sec)
  10.  
  11. mysql> SELECT *
  12.     -> FROM hoja1
  13.     -> WHERE Concepto LIKE '%FLEX AUT 1%' or Modelo LIKE '%FLEX AUT 1%';
  14. +----------+----------+------------+
  15. | TABLA_ID | CONCEPTO | MODELO     |
  16. +----------+----------+------------+
  17. |        1 | AAAAAA   | FLEX AUT 1 |
  18. +----------+----------+------------+
  19. 1 row in set (0.00 sec)
Y... no. Funciona bien.



¿Estas completamente seguro de que la tabla es como dices, y los datos que no devuelve son los que dices?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #9 (permalink)  
Antiguo 01/08/2012, 09:54
 
Fecha de Ingreso: diciembre-2008
Mensajes: 738
Antigüedad: 15 años, 4 meses
Puntos: 15
Respuesta: Búsqueda múltiple en MySQL no funciona

Ya lo solucioné, muchas gracias
  #10 (permalink)  
Antiguo 01/08/2012, 10:10
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, 4 meses
Puntos: 2658
Respuesta: Búsqueda múltiple en MySQL no funciona

¿Y cuál era el problema?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #11 (permalink)  
Antiguo 05/08/2012, 16:49
Avatar de gerardo_goh  
Fecha de Ingreso: noviembre-2008
Mensajes: 107
Antigüedad: 15 años, 5 meses
Puntos: 1
Respuesta: Búsqueda múltiple en MySQL no funciona

¿Cual es el problema? es lo malo de que ya le dan el ejemplo y no cierran el post con su tabla terminada o el problema terminado, y a veces otras personas tienen el mismo problema y se quedan a medias tintas.

Etiquetas: múltiple, select, sql, campos
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 18:07.