Ver Mensaje Individual
  #2 (permalink)  
Antiguo 04/10/2013, 14:18
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, 3 meses
Puntos: 2658
Respuesta: Usar alternativas de like

No uses LIKE.
LIKE es la muleta de los programadores que no conocen o no entienden de SQL, pero es una pésima solución, en especial cuando estas tratando con valores numéricos.
Esa cláusula se usa cuando se realizan búsquedas por proximidad, por parecido, pero un número no peude ser "parecido a". Eso no existe en matemática. Un numero es una magnitud escalar, y como tal debe ser tratada.
Puede ser igual, mayor, menor, diferente, en un rango o cosas así, pero no es "parecido a".

Además, LIKE opera sobre cadenas de caracteres, por lo que lo que está sucediendo es que MySQL convierte ambos valores en cadenas y las trata como tales, porque estás poniendo los numeros en un contexto e cadenas al usar esa clausula.
En otras palabras, si quieres algo que sea igual a un valor, o que esté en un grupo de valores, haz exactamente eso:
Código MySQL:
Ver original
  1. SELECT * FROM productos WHERE subcategoria = 24;

o bien
Código MySQL:
Ver original
  1. SELECT * FROM productos WHERE subcategoria IN(24);

QUe puede usarse para varios:
Código MySQL:
Ver original
  1. SELECT * FROM productos WHERE subcategoria IN(24, 25, 26, 30, 33);
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)