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

Funcion IN

Estas en el tema de Funcion IN en el foro de Mysql en Foros del Web. Hola chicos necesito saber que diferencia hay entre where id in ('1,2,5,9,36,12,58,13,50') y where id in ('1','2','5','9','36','12','58','13','50') estuve buscando en la documentacion esta funcion pero ...
  #1 (permalink)  
Antiguo 31/01/2012, 10:33
 
Fecha de Ingreso: junio-2007
Mensajes: 152
Antigüedad: 16 años, 10 meses
Puntos: 0
Funcion IN

Hola chicos necesito saber que diferencia hay entre

where id in ('1,2,5,9,36,12,58,13,50')

y

where id in ('1','2','5','9','36','12','58','13','50')


estuve buscando en la documentacion esta funcion pero no la encuentro el tema es que la query me devuelve cosa diferentes.

Desde ya muchas gracias
  #2 (permalink)  
Antiguo 31/01/2012, 10:42
Avatar de 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, 5 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)
  #3 (permalink)  
Antiguo 31/01/2012, 10:46
Avatar de skiper0125  
Fecha de Ingreso: octubre-2010
Ubicación: $this->Mexico('Toluca');
Mensajes: 1.127
Antigüedad: 13 años, 6 meses
Puntos: 511
Respuesta: Funcion IN

Hola que tal.


La diferencia a la sentencia
Código MySQL:
Ver original
  1. where id in ('1,2,5,9,36,12,58,13,50')
es que solo buscas un valor en tu consulta, y sin embargo en la sentencia
Código MySQL:
Ver original
  1. where id in ('1','2','5','9','36','12','58','13','50')
mandas buscar varios parámetros de datos.

Checa esto te puede ayudar en algo

http://www.1keydata.com/sql/sqlin.html

Saludos
__________________
Recuerda que estamos aquí para orientarte, y no para hacer tu trabajo.
Si mi aporte fue de ayuda, recuerda que agradecer no cuesta nada +1

Skiper0125
  #4 (permalink)  
Antiguo 31/01/2012, 12:12
 
Fecha de Ingreso: junio-2007
Mensajes: 152
Antigüedad: 16 años, 10 meses
Puntos: 0
Respuesta: Funcion IN

Muchas gracias a todos me re ayudaron

Etiquetas: funcion, query
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 10:40.