Tema: Funcion IN
Ver Mensaje Individual
  #2 (permalink)  
Antiguo 31/01/2012, 10:42
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: 16 años, 9 meses
Puntos: 2658
Respuesta: Funcion IN

En el primer caso tienes una sola cadena con el valor "1,2,5,9,36,12,58,13,50", es decir, es un valor único. Sólo te devolverá datos si el ID contiene exactamente toda esa cadena.

En el segundo caso tienes nueve (9) cadenas de texto. Te devolverá datos si ID es igual a cualquiera de ellos.

Las dos formas son incorrectas si ID es numéricos. Los valores numéricos no deben ser comparados con cadenas, sino con secuencias de números:
Código MySQL:
Ver original
  1. WHERE ID IN (1,2,5,9,36,12,58,13,50)

Esto es porque mezclar números y cadenas obliga a MySQL a realizar conversiones implícitas (de numero a cadena). SI lo intentaras con otros DBMS te daría un error de tipo de dato.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)