|
Página 1 de 2
|
Autor |
Mensaje |
jsbsan
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4175
Edad: 51 Ubicación: dos hermanas, sevilla
|
El Operador LIKE De SQL
Bueno, supongo que muchos lo conoceis, pero otros no... Se trata de el operador relacional LIKE.
Se usa para realizar busquedas por contenido, osea, de "porciones" de cadenas dentro de un campo.
Citar:
Imaginemos que tenemos registrados estos 2 libros, en una tabla llamada libros, con dos campos "titulo" y "autor:
"El Aleph", "Borges";
"Antologia poetica", "J.L. Borges";
Si queremos recuperar todos los libros del autor "Borges" y especificamos la siguiente condición:
select *from libros
where autor='Borges';
sólo aparecerá el primer registro, ya que la cadena "Borges" no es igual a la cadena "J.L. Borges".
Esto sucede porque el operador "=" (igual), también el operador "<>" (distinto) comparan cadenas de caracteres completas. Para comparar porciones de cadenas utilizamos los operadores "like" y "not like".
Entonces, podemos comparar trozos de cadenas de caracteres para realizar consultas. Para recuperar todos los registros cuyo autor contenga la cadena "Borges" debemos tipear:
select *from libros
where autor like "%Borges%";
El símbolo "%" (porcentaje) reemplaza cualquier cantidad de caracteres (incluyendo ningún caracter). Es un caracter comodín. ....
En este enlace lo explica muy bien:
Enlace Like
Este tipo de búsqueda por contenido, es muy útil cuando el usuario no sabe exactamente el campo completo, pero desea buscar registros que tengan ese contenido, y asi al leerlos ya da con el que buscaba.
Por ejemplo, el típico caso de:
- Buscar un registro por el nombre completo de una persona, pero que el usuario solo se acuerda del primer apellido. Con este tipo de busqueda, encuentra todos los nombres completo que contenga ese apellido.
- Buscar por el numero de telefono, pero solo nos acordamos de las 3 últimas cifras.
-etc.
Saludos
|
#1 Lunes, 04 Agosto 2014, 12:59 |
|
|
jousseph
jousseph germaine celis zambrano
Analista Programador
Registrado: Julio 2010
Mensajes: 434
Edad: 38 Ubicación: Tachira
|
Re: El Operador LIKE De SQL
Excelente señor JSBSAN quiere decir que puedo buscar un nombre de diferentes formas, es bueno a la hora de crear una consulta general de lo que se busca y sera que también servirá para buscar entre minúsculas y mayúsculas? pienso que si.
última edición por jousseph el Martes, 05 Agosto 2014, 20:53; editado 1 vez
|
#2 Martes, 05 Agosto 2014, 06:18 |
|
|
jsbsan
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4175
Edad: 51 Ubicación: dos hermanas, sevilla
|
Re: El Operador LIKE De SQL
jousseph:
Citar: y sera que también servirá para buscar entre minúsculas y mayúsculas?
Para eso le tienes que añadir el operador upper, de esta forma:
Esta consulta devuelve todos los registros de la tabla "Profesores", cuyo nombre contenga "perico", ya sea mayusculas o minusculas o combinado ("PERICO","perico","PeriCo","PERico","Juan Perico","Perico100", etc)
Enlace donde encontre la información y el ejemplo: Enlace Foro de Delphi
Citar: quiero comentarle sobre una duda que tengo referente a una consulta sql de tres tablas relacionas de muchos muchos
Mejor abre otro hilo, con la duda y alli te contesto (o lo intento ). Es para no mezclar temas que no tienen nada que ver.
|
#3 Martes, 05 Agosto 2014, 09:43 |
|
|
jousseph
jousseph germaine celis zambrano
Analista Programador
Registrado: Julio 2010
Mensajes: 434
Edad: 38 Ubicación: Tachira
|
Re: El Operador LIKE De SQL
Señor JSBSAN
Citar: Mejor abre otro hilo, con la duda y alli te contesto (o lo intento ). Es para no mezclar temas que no tienen nada que ver.
Inténtelo usted si puede por favor es que no he podido ni borrar la publicación anterior que tiene símbolos "--------" allá arriba si la vio?, jajajajaja, por lo que mi falta de manejar los post me tiene el cerebro fundido, le agradezco su atención, gracias.
|
#4 Martes, 05 Agosto 2014, 16:08 |
|
|
jsbsan
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4175
Edad: 51 Ubicación: dos hermanas, sevilla
|
Re: El Operador LIKE De SQL
jousseph:
Lo he puesto en este hilo:
http://foro.gambas-es.org/viewtopic.php?f=3&t=4018, que te manda a un post que he hecho en mi blog sobre el tema.
Espero que te aclare, si no es asi, en el hilo que he creado, lo comentas.
Saludos
|
#5 Martes, 05 Agosto 2014, 17:07 |
|
|
angelnu
Angel
Programador
Registrado: Septiembre 2009
Mensajes: 106
Edad: 61 Ubicación:
|
Re: El Operador LIKE De SQL
Yo utilizo mucho el operador ILIKE que no distingue entre mayúsculas y minúsculas, lo utilizo en postgresql no se si es SQL estandar
o una función propia de postgresql. La sintaxis es la misma que LIKE.
|
#6 Martes, 05 Agosto 2014, 18:04 |
|
|
Shell
Analista Programador
Registrado: Marzo 2010
Mensajes: 5278
Edad: 53 Ubicación: Al otro lado de la pantalla
|
Re: El Operador LIKE De SQL
Hola
Estaba probando LIKE y el operador AND.
SELECT * FROM entradas WHERE Pais LIKE "ESPAÑA" AND Sexo LIKE "F" AND Nombre LIKE "%Maria%" AND Fnacimiento LIKE "%197%"
Lo cierto es que queda una linea enorme. Y esto luego en los formularios tiene que ser un poco complicado para realizar este tipo de consultas, ¿ No ?.
¿ Se crea un formulario por cada tipo de consulta concreta ?.
Saludos
=================== Gambas Básico
"No es un bug, es una característica no documentada"
|
#7 Miercoles, 06 Agosto 2014, 13:39 |
|
|
jsbsan
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4175
Edad: 51 Ubicación: dos hermanas, sevilla
|
Re: El Operador LIKE De SQL
Shell:
Pues no has visto la que ha puesto Shordi en este hilo Enlace:
select `p`.`apellidos` AS `Apellidos`,`p`.`nombre` AS `Nombre`,`p`.`dni` AS `D.N.I.`,`p`.`sexo` AS `sexo`,`p`.`f_nacimiento` AS `F.Nacimiento`,`p`.`domicilio` AS `Domicilio`,`p`.`codpost` AS `Cod.Post.`,`p`.`localidad` AS `Localidad`,`p`.`provincia` AS `Provincia`,`p`.`movil` AS `Móvil`,`p`.`fijo` AS `Fijo`,`p`.`e_mail` AS `E-Mail`,`p`.`sede` AS `sede`,`p`.`sector` AS `sector`,`p`.`fafiliacion` AS `F.Afiliación`,`p`.`fbaja` AS `F.Baja`,`p`.`enmano` AS `enmano`,`p`.`entidad` AS `Entidad`,`p`.`oficina` AS `Sucursal`,`p`.`digito` AS `D.C.`,`p`.`cuenta` AS `Cuenta`,`p`.`fmodcuenta` AS `F.Mod.Cuenta`,`cuotas`.`denominacion` AS `cuota`,`p`.`fmodcuota` AS `F.Mod.Cuota`,`p`.`obscuotas` AS `Af.Obs.`,`c`.`tipo` AS `T.Personal`,`sa`.`denominacion` AS `S.Administrativa`,`sf`.`denominacion` AS `S.Funcionario`,`c`.`denominacion` AS `Cuerpo`,`p`.`observaciones` AS `Adm.Obs.`,`centros`.`denominacion` AS `Destino`,`centros`.`localidad` AS `Loc.Destino`,`centros`.`provincia` AS `Prov.Destino`,`centros`.`observaciones` AS `Obs.Destino`,`especialidades`.`especialidad` AS `Esp.Destino`,`centros_1`.`denominacion` AS `Servicio`,`centros_1`.`localidad` AS `Loc.Servicio`,`centros_1`.`provincia` AS `Prov.Servicio`,`centros_1`.`observaciones` AS `Obs.Servicio`,`especialidades_1`.`especialidad` AS `Esp.Servicio`,`p`.`limbo` AS `limbo` from ((((((((`datos` `p` left join `sit_adm` `sa` on((`p`.`sit_adm` = `sa`.`codigo`))) left join `sit_fun` `sf` on((`p`.`sit_fun` = `sf`.`codigo`))) left join `cuotas` on((`p`.`cuota` = `cuotas`.`codigo`))) left join `centros` on((`centros`.`codigo` = `p`.`destino`))) left join `centros` `centros_1` on((`centros_1`.`codigo` = `p`.`servicio`))) left join `especialidades` on((`p`.`espec_dest` = `especialidades`.`codigo`))) left join `especialidades` `especialidades_1` on((`p`.`espec_serv` = `especialidades_1`.`codigo`))) left join `cuerpos` `c` on((`p`.`cuerpo` = `c`.`codigo`)))
Eso si que es largo (y ademas es un caso real)... más largo que un dia sin pan...
|
#8 Miercoles, 06 Agosto 2014, 13:46 |
|
|
Shell
Analista Programador
Registrado: Marzo 2010
Mensajes: 5278
Edad: 53 Ubicación: Al otro lado de la pantalla
|
Re: El Operador LIKE De SQL
Que barbaridad, la leche!.
Vamos, como para confundirte en algo por el camino.
Saludos
=================== Gambas Básico
"No es un bug, es una característica no documentada"
|
#9 Miercoles, 06 Agosto 2014, 21:17 |
|
|
nore
Usuario
Registrado: Febrero 2015
Mensajes: 6
Edad: 45
|
Re: El Operador LIKE De SQL
Hola.
Tu aporte sobre el uso del operador LIKE fue muy bueno para mi, me permitió visualizar el mètodo para resolver una necesidad, pero lo probé y no pude resolver. Necesito otra ayudita
Estoy trabajando con un formulario con Gambas3 y MySQL para la base de datos. El formulario es para registrar datos de una persona e incluye un textbox donde el usuario debe introducir el nombre de la persona, eso va a una tabla llamada "personas", especificamente a un campo llamado "nombrepers". Ya conseguì hacer la conexión y guardar, pero quiero que el procedimiento "buscar" me permita devolver al formulario los datos de la persona guardada. Y la bùsqueda debo hacerla por el nombre, pero el usuario no siempre sabrà còmo se guardo exactamente ese nombre, por lo que debo usar el operador LIKE. Quisiera que el textbox u otra lista (no se què objeto podrìa usar) hiciera algo como un autocompletado. Es decir que si el usuario introduce la letra "M" en el textbox aparezca una lista con todos los nombres que existan y que comiencen con esa letra, y si sigue escribiendo "Ma" entonces aparezca en la lista solo los que comienzan por esas dos... y asì. He leìdo que debo hacer un bucle, lo intentè pero no lo estoy haciendo bien...
|
#10 Jueves, 12 Febrero 2015, 15:18 |
|
|
|
Temas parecidos
Temas parecidos
|
Página 1 de 2
|
Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado Usuarios registrados conectados: Ninguno
|
No puede crear mensajes No puede responder temas No puede editar sus mensajes No puede borrar sus mensajes No puede votar en encuestas No puede adjuntar archivos Puede descargar archivos No puede publicar eventos en el calendario
|
|
|
|
|