Si la sentencia la creas en una aplicación, la mejor solución es usar la forma
Donde
valores es una lista de valores separados por comas, tomados dinamicamente por la aplicación, como por ejemplo:
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:
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.