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

como es la sentencia para diferenciar cadena

Estas en el tema de como es la sentencia para diferenciar cadena en el foro de Mysql en Foros del Web. Buenos dias : tengo una consulta mysql de la siguiente forma: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código SQL: Ver original SELECT * FROM ejecutivos WHERE ejecutivos . alias ...
  #1 (permalink)  
Antiguo 23/06/2015, 07:41
 
Fecha de Ingreso: mayo-2015
Mensajes: 63
Antigüedad: 9 años, 6 meses
Puntos: 1
como es la sentencia para diferenciar cadena

Buenos dias :

tengo una consulta mysql de la siguiente forma:

Código SQL:
Ver original
  1. SELECT * FROM ejecutivos WHERE ejecutivos.alias LIKE '%$id_alias%'
aqui selecciono todos los ejecutivos que son igual al alias

mi pregunta es como hago la consulta para que sean diferentes al alias.


muchas gracias
  #2 (permalink)  
Antiguo 23/06/2015, 07:51
Avatar de 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: como es la sentencia para diferenciar cadena

Cita:
aqui selecciono todos los ejecutivos que son igual al alias
En realidad no estás buscando los que sean igual al alias, sino sólo los que contengan esa misma cadena de texto, que no es lo mismo.
Estás cometiendo el mismo error de lógica de todo principiante, que abusa del LIKE.

LIKE es una clausula de pésima performance, que sólo debe usar si es estrictamente necesaria y exclusivamente para valores de cadenas de texto, mientras que tu pareces estar usandola con un valor numérico (ID_ALIAS). LIKE no aplica a numeros, porque los numeros son magnitudes, y las magnitudes no son "parecidas a". O son iguales, mayores, menores o están dentro de un rango. NUNCA son "parecidas", por lo que no aplica LIKE.

Más alla de eso, LIKE devuelve una condición booleana (true o false), por lo que si esa condición se cumple es TRUE, en consecuencia tu pregunta es de respuesta obvia:
Cita:
como hago la consulta para que sean diferentes al alias.
Pues si quieres que algo sea diferente de TRUE, sólo puede ser la negación de TRUE, es decir NOT [condición]... ¿no te parece?

Algo tan simple como
Código MySQL:
Ver original
  1. ... NOT LIKE ...
__________________
¿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 23/06/2015, 07:56
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 10 meses
Puntos: 447
Respuesta: como es la sentencia para diferenciar cadena

Hola mauricio1020:

La única diferencia entre IGUAL y NO IGUAL es la palabra NO... lo mismo pasa con SQL

Código MySQL:
Ver original
  1. SELECT * FROM ejecutivos WHERE ejecutivos.alias LIKE '%$id_alias%'
  2.  
  3.  
  4. SELECT * FROM ejecutivos WHERE ejecutivos.alias NOT LIKE '%$id_alias%'

Sin embargo aquí cabe hacer una observación: el operador LIKE sirve para encontrar patrones, NO PARA HACER IGUALACIONES... y no es recomendable su uso, ya que tiene un bajo desempeño.

Si vas a hacer comparaciones de IGUALDAD entonces utiliza el operador IGUAL (=), si quieres comparar que NO SEAN IGUALES, entonces utiliza el operaror de Negación (!) para construir el operador de NO IGUALDAD o DIFERENTES (!=).

Código:
EDITADO: otra vez gnzsoloyo un paso adelante :P. Saludos
Saludos.
  #4 (permalink)  
Antiguo 23/06/2015, 08:00
Avatar de 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: como es la sentencia para diferenciar cadena



__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 23/06/2015, 08:08
 
Fecha de Ingreso: mayo-2015
Mensajes: 63
Antigüedad: 9 años, 6 meses
Puntos: 1
Respuesta: como es la sentencia para diferenciar cadena

es que me equivoque no era id_alias era alias solo ;pero entonces uno puede comparar cadenas con ==? no entiendo pense que solo era para numeros?=(=(
  #6 (permalink)  
Antiguo 23/06/2015, 09:20
Avatar de 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: como es la sentencia para diferenciar cadena

Cita:
Iniciado por mauricio1020 Ver Mensaje
es que me equivoque no era id_alias era alias solo ;pero entonces uno puede comparar cadenas con ==? no entiendo pense que solo era para numeros?=(=(

No se de donde sacaste esa idea, pero de todos modos está mal de todos lados.
Primero: Estás haciendo una comparación en SQL, no en PHP, por lo que no usas "==", sino "=". No es lo mismo.
Además, el "=" en SQL es un operador de comparación, al igual que varios otros. En todo caso deberías leer el manual de referencia:

Operadores de comparación
Operadores lógicos
Precedencia de operadores

Leer el manual ante las dudas es lo que hacemos TODOS.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 23/06/2015, 10:10
 
Fecha de Ingreso: mayo-2015
Mensajes: 63
Antigüedad: 9 años, 6 meses
Puntos: 1
Respuesta: como es la sentencia para diferenciar cadena

vale muchas gracias leere los manuales,queria hacer una anotacion me da la impresion que respondes como enojado? ojala solo sea impresion muchas gracias de nuevo

Etiquetas: cadena, diferenciar, select, sentencia, sql
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:46.