Buenas tardes, creo que lo que quieres hacer no es posible. Por defecto SQL ordena los registros de acuerdo a como están registrados en la base de datos.
Para tratar de imaginar cómo trabaja SQL se tiene que barrer toda la tabla y comparar registro por registro. Si el registro seleccionado cumple con las condiciones entonces lo inserta en una tabla temporal y si no cumple pues simplemente continua con el siguiente registro. Al final regresa el contenido de la tabla temporal.
Creo que lo que tendrías que hacer es agregar una columna adicional a tu tabla en donde especifiques el orden que deseas, algo así:
idProd|descripcion|orden
1|BL10|2
2|BL15|4
3|BL45|1
4|BL50|3
Tu consulta quedaría así:
Código SQL:
Ver originalSELECT * FROM Productos WHERE idProd IN(3,1,4,2) ORDER BY orden
Saludos.
Leo.