• Domingo 22 de Diciembre de 2024, 15:50

Autor Tema:  OBTENER DATOS PARECIDOS DE UN CONJUNTO DE DATOS  (Leído 2099 veces)

pedroqv

  • Miembro activo
  • **
  • Mensajes: 55
    • Ver Perfil
OBTENER DATOS PARECIDOS DE UN CONJUNTO DE DATOS
« en: Jueves 3 de Diciembre de 2009, 02:49 »
0
ESTOY HACIENDO UN SISTEMA PARA UNA LIBRERIA, PERO ME ENCONTRE CON OBSTACULO QUE LO VEO LO BASTANTE GRANDECITO Y TIENE QUE VER CON LA BUSQUEDA DE UN LIBRO.

IMAGINEN QUE YO BUSCO EL LIBRO "EL CABALLERO DE LA ARMADURA OXIDADA", MANDO UNA CONSULTA A LA BASE DE DATOS Y SI NO EXISTE UN LIBRO CON ESE NOMBRE PRECISO NO VA DEVOLVER NADA.

ENTONCES, ANALISANDO ME ACORDE QUE EN UNA LIBRERIA CUANDO TU PONES UN NOMBRE DE UN LIBRO, EDITORIAL, AUTOR U OTRO DATO, EL SISTEMA TE MUESTRA TODO LO RELACIONADO A LA INFORMACION QUE PUSISTE. EN EL CASO ANTERIOR QUE PUSE "EL CABALLERO DE LA ARMADURA OXIDADA" EL SISTEMA DEBERA DE MOSTRARME TODOS LOS LIBROS QUE CONTENGAN ALGO DEL TITULO, YA SE CABALLERO, ARMADURA U OXIDADA.

AQUI ES DONDE YO ME PREGUNTO COMO HACER ESTO, LO UNICO QUE A MI SE ME  HA OCURRIDO ES HACER UNA CONSULTA A TODOS LOS LIBROS Y YA CARGADOS IRME LIBRO POR LIBRO COMPARADO SI ALGUNA DE LAS PALABRAS DEL TITULO SE ENCUENTRAN EN EL LIBRO, SI ES ASI, EL SISTEMA DEBERA MOSTRAR EL LIBRO, SINO DEBERA PASAR AL SIGUIENTE LIBRO.
PERO SI ME VOY AL PEOR CASO; QUE TAL SI LA BASE DE DATOS TIENE 1 MILLON DE LIBROS, ENTONCES PARA REALIZAR ESTO SERIA DEMASIADO CARGADO PARA ELLO.

ME GUSTARIA SABER COMO LE HACEN LOS SISTEMAS PARA AVERSIGUARSELAS CON ESTE TIPO DE PROBLEMAS; SERIA QUE USAN ARBOLES, LISTAS, ENTRE OTROS.

 :alien:  :alien:  :alien:

ProfesorX

  • Moderador
  • ******
  • Mensajes: 796
  • Nacionalidad: mx
    • Ver Perfil
Re: OBTENER DATOS PARECIDOS DE UN CONJUNTO DE DATOS
« Respuesta #1 en: Jueves 3 de Diciembre de 2009, 04:19 »
0
Primero, por favor no escribas todo en mayusculas, escribir todo en mayusculas, se considera que estas gritando.

Segundo. no mencionas si estas usando un manejador de base de datos como SQL Server o MySQL, pero, si tu caso es ese. es facil hacerlo mediante consultas y el operador Like, en combinacion con comodines.

Por ejemplo, tomando el ejemplo del libro, la siguiente consulta en MySQL encuentra aquellos libros que contengan las tres palabras al mismo tiempo.

Código: SQL
  1.  
  2. SELECT * FROM libros WHERE nombre_libro LIKE '%Caballero%' AND nombre_libro LIKE '%armadura%' AND nombre_libro LIKE '%oxidada%'
  3.  
  4.  

La siguiente consulta en MySQL te encuentra aquellos libros que contengan cualquiera de las tres palabras:

Código: SQL
  1.  
  2. SELECT * FROM libros WHERE nombre_libro LIKE '%Caballero%' OR nombre_libro LIKE '%armadura%' OR nombre_libro LIKE '%oxidada%'
  3.  
  4.  

En MySQL el caracter '%' es el comodin.

Si no utilizas MySQL, verifica que caracter utilizan como comodin el manejador de base de datos, y si soporta el operador Like.

Saludos :)

NOTA:
==================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
==================================================================

pedroqv

  • Miembro activo
  • **
  • Mensajes: 55
    • Ver Perfil
Re: OBTENER DATOS PARECIDOS DE UN CONJUNTO DE DATOS
« Respuesta #2 en: Jueves 3 de Diciembre de 2009, 04:45 »
0
Oh que sencillo parece... esperemos que no se me complique a la hora de hacerlo, hablando del manejador de base de datos yo utilizo el SQL 2000, voy a investigar cual es el comodin para este manejador y disculpas por las MAYUSCULAS  :good:

pedroqv

  • Miembro activo
  • **
  • Mensajes: 55
    • Ver Perfil
Re: OBTENER DATOS PARECIDOS DE UN CONJUNTO DE DATOS
« Respuesta #3 en: Viernes 4 de Diciembre de 2009, 17:59 »
0
Thanks you! si me funciono y bastante bien, nunca iva pensar que un sistema que hiciera este proceso tuviera que ser tan sencillo.

ProfesorX

  • Moderador
  • ******
  • Mensajes: 796
  • Nacionalidad: mx
    • Ver Perfil
Re: OBTENER DATOS PARECIDOS DE UN CONJUNTO DE DATOS
« Respuesta #4 en: Viernes 4 de Diciembre de 2009, 19:14 »
0
Si, por algo SQL se considera el lenguaje por excelencia para manejo de base de datos, es un lenguaje muy poderoso, aunque tambien tiene sus limitaciones, claro ;)

Que bueno que te sirvio la informacion.

Saludos :)

NOTA:
==================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
==================================================================