Ver Mensaje Individual
  #4 (permalink)  
Antiguo 01/03/2010, 06:03
Avatar de gnzsoloyo
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: Duda con una consulta

Si la sentencia la creas en una aplicación, la mejor solución es usar la forma
Código MySQL:
Ver original
  1. FROM usuarios
  2. WHERE idUsuario IN(valores)
Donde valores es una lista de valores separados por comas, tomados dinamicamente por la aplicación, como por ejemplo:
Código MySQL:
Ver original
  1. FROM usuarios
  2. WHERE idUsuario IN(1, 3, 55, 69, 68, 69, 70, 201)
La otra forma es crear esta sentencia por medio de una sentencia preparada, que se puede administrar por medio de un stored procedure. La sintaxis es un poco más compleja, pero es eficiente.

Una tercera forma de encarar esto es cuando la lista de ID a buscar provienene de otra consulta. En ese caso lo mejor es usar una subconsulta que recoja los valores a buscar:
Código MySQL:
Ver original
  1. FROM usuarios
  2. WHERE idUsuario IN(SELECT DISTINCT idUsuario FROM tabla WHERE condiciones)
Donde condiciones son las condiciones buscadas de los ID.
Es importante en este caso recordar que el SELECT de la subconsulta debe devolver una única columna, porque se está comparando con un único campo, y comparar con un set generaría error.

Hay más formas pero depende de la aplicación.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 01/03/2010 a las 09:28