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

consulta, cuando no sea "estapalabra" Where y que mas?

Estas en el tema de consulta, cuando no sea "estapalabra" Where y que mas? en el foro de Mysql en Foros del Web. hola espero esten bien quiero hacer una consulta, donde me muestre casi todos los registros menos los que tengan cierta palabra en cierto campo me ...
  #1 (permalink)  
Antiguo 04/09/2012, 20:25
 
Fecha de Ingreso: enero-2012
Ubicación: en Ecatepec
Mensajes: 102
Antigüedad: 12 años, 3 meses
Puntos: 3
consulta, cuando no sea "estapalabra" Where y que mas?

hola espero esten bien quiero hacer una consulta, donde me muestre casi todos los registros menos los que tengan cierta palabra en cierto campo me ayudan?
__________________
mi motor de busqueda no es google, sino la necesidad del Amor de Dios

www.CreacionDePaginasdeInternet.com
  #2 (permalink)  
Antiguo 05/09/2012, 00:59
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 2 meses
Puntos: 1146
Respuesta: consulta, cuando no sea "estapalabra" Where y que mas?

necesitas usar la opcion "like", en este link puedes ver como funciona:

http://dev.mysql.com/doc/refman/5.0/...-matching.html
  #3 (permalink)  
Antiguo 05/09/2012, 04:32
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, 4 meses
Puntos: 2658
Respuesta: consulta, cuando no sea "estapalabra" Where y que mas?

¿Por qué los programadores tienen tanta fascinacion con el uso de "LIKE"?
La usan constantemente (y por lo general con su peor sintaxis), como si fuese la única forma de realizar consultas.
Llegan al extremo de usarla incluso cuando lo que deberían usar es "="...

Contestando la pregunta, hay varias formas de realizar lo que quieres. Una de ellas, por ejemplo es
Código MySQL:
Ver original
  1. ...
  2. WHERE INSTR(cadena, campo)=0;
Cuando la busqueda es por coincidencia exacta, suelo preferir esta.
Otra es usando el LIKE, como te sugieren, pero hacer

Código MySQL:
Ver original
  1. ...
  2. WHERE campo NOT LIKE '"%texto%";
El la forma de usar LIKE con la peor performance imaginable.
Es conveniente siempre que esa forma de LIKE se use sobre un conjunto de datos ya filtrado con otros parámetros, porque ese modo de usarlo implica que lea toda la tabla, hasta el último registro. Y si tienes millones de registros...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 05/09/2012 a las 06:35
  #4 (permalink)  
Antiguo 05/09/2012, 09:47
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 2 meses
Puntos: 1146
Respuesta: consulta, cuando no sea "estapalabra" Where y que mas?

tal como dices compañero, cuando es por coencidencia exacta (el campo contiene exactamente solo ese valor), si solo he usado like para responder habra sido mi falta de entendimiento para la pregunta o quizas una respuesta incompleta (lo mas probable).

Mi logica y posible confusion ha sido con esta seccion

Cita:
quiero hacer una consulta, donde me muestre casi todos los registros menos los que tengan cierta palabra en cierto campo me ayudan?
Solo dice que tengan no implica que sea el unico valor del campo por lo que asumi que este campo podria tener mas palabras y/o caracteres siendo mi mejor opcion usar un "LIKE"

Aunque probablemente es que debi incluir ambos ejemplos (con la instruccion diferente a "!=" y con "LIKE").
  #5 (permalink)  
Antiguo 05/09/2012, 10:05
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, 4 meses
Puntos: 2658
Respuesta: consulta, cuando no sea "estapalabra" Where y que mas?

Si puedes evitar usar LIKE, los DBA estarán agradecidos...
Es un asesino de performance (peor es el REGEXP, pero eso eso otro asunto).
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
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 19:08.