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

[SOLUCIONADO] Filtrar resultante de filtro de registros

Estas en el tema de Filtrar resultante de filtro de registros en el foro de Mysql en Foros del Web. Estimados, tengo que realizar una consulta en la base de datos en la tabla "productos" que me filtre del campo "marca" según lo ingresado en ...
  #1 (permalink)  
Antiguo 26/02/2013, 13:56
 
Fecha de Ingreso: abril-2011
Mensajes: 5
Antigüedad: 13 años
Puntos: 0
Pregunta Filtrar resultante de filtro de registros

Estimados, tengo que realizar una consulta en la base de datos
en la tabla "productos"

que me filtre del campo "marca" según lo ingresado en $marca
y del campo "rubro" según lo ingresado en $rubro

y a la vez que de estos "registros" resultantes me filtre:

del campo "descripcion" la porcion de texto ingresada en $bus
y del campo "codigo" la porcion de texto ingresada en $bus

Seria algo asi como filtrar los registros de una resultante de otro filtro

realizando una sola consulta a la Base de Datos.

es posible?


Lo que tengo es lo siguiente pero me realiza un solo filtrado
no me diferencia como lo indico mas arriba:
Código MySQL:
Ver original
  1. FROM productos
  2. WHERE marca = '$marca'  
  3. and rubro = '$rubro'
  4. and descripcion LIKE '%$bus%'
  5. OR codigo LIKE '%$bus%'

Última edición por gnzsoloyo; 26/02/2013 a las 14:50 Razón: Lengaje de programación no permitido en foros de BBDD
  #2 (permalink)  
Antiguo 26/02/2013, 14:19
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: Filtrar resultante de filtro de registros

Hola remfo:

Algunas recomendaciones antes de intentar contestar tu pregunta. En primer lugar NO MEZCLES LENGUAJES... si publicas tu pregunta en este foro enfócate sólo en el código SQL, no incluyas ningún otro lenguaje de programación (PHP, Java, ASP.NET, etc). Si tu pregunta tiene que ver con el lenguaje de programación, pues publícala en el foro respectivo.

Ahora bien, volviendo a tu pregunta, debes tener cuidado cuando utilizas condiciones AND y OR en una misma sentencia WHERE... estos operadores TIENEN UNA JERARQUÍA DISTINTA, esto quiere decir que primero se ejecutan las condiciones AND y después las condiciones OR...

Código:
Recuerdas que en matemáticas:

3 + 2 * 5 = 13
Esto es porque la multiplicación TIENE MAYOR JERARQUÍA que la suma... Cuando mezclas operadores es necesario hacer un uso correcto de los paréntesis:

Código:
volviendo al ejemplo de matemáticas:

(3 + 2) * 5 = 15
Es decir, al agrupar con paréntesis la suma, esta se ejecuta antes que la multiplicación.

Con SQL es lo mismo... podrías intentar hacer esto para ver si te funciona.

Código:
SELECT * FROM productos 
WHERE marca = '$marca'  AND rubro = '$rubro' 
AND (descripcion LIKE '%algo%' OR codigo LIKE '%algo%') 
Observa que estoy agrupando las condiciones OR con paréntesis...

Si esto no te funciona, te pediría que nos pongas algunos datos de ejemplo de tu tabla, y que a partir de estos datos nos digas qué es lo que esperas obtener como salida.

Saludos
Leo.
  #3 (permalink)  
Antiguo 26/02/2013, 14:41
 
Fecha de Ingreso: abril-2011
Mensajes: 5
Antigüedad: 13 años
Puntos: 0
Respuesta: Filtrar resultante de filtro de registros

Pido disculpas al foro por incluir lenguaje no correspondiente.
La respuesta de leonardo_josue me dio la solucion a mi inquietud.
Gracias!

Etiquetas: filtrar, registros, select, sql, tabla
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 09:55.