Ver Mensaje Individual
  #4 (permalink)  
Antiguo 12/06/2012, 10:47
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
Puntos: 2658
Respuesta: Duda de sintaxis de mysql

Código MySQL:
Ver original
  1. SELECT P.color
  2. FROM piezas P INNER JOIN productos R ON P.modelo = PR.nombre
  3. WHERE PR.tipo = 'R'
LIKE es una clausula para determinar coincidencias por aproximación, pero a nivel lógico sólo tiene sentido usarlo si lo vas a hacer con ayuda de los comodines (%) dentro de la cadena. Estos comdines hacen que MySQL duevuelva todas las coincidencias donde está la cadena, con cualquier tipo de caracteres adicionales donde está el comodín.
Por ejemplo:
Código MySQL:
Ver original
  1. SELECT P.color
  2. FROM piezas P INNER JOIN productos R ON P.modelo = PR.nombre
  3. WHERE PR.tipo LIKE '%R%'
Pero en un contexto de búsqueda sin comodines, el LIKE es semánticamente idéntico al sigo de igualdad (=), por lo que carece de utilidad. es más simple usar la igualdad.
Además, ten en cuenta que lo que estás buscando es un único caracter, porque eso es lo que tienes definido almacenar allí. ¿Qué sentido tiene hacer búsquedas por aproximación, cuando tienes una cantidad de valores limitado, que se pueden determinar con un ComboBox?
Ninguna.
El LIKE sólo tiene sentido usarlo contra valores ingresados manualmente que se buscan en campos VARCHAR o TEXT que contienen cadenas largas. Para validar caracteres o códigos alfanuméricos breves, no tiene ningún sentido.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)