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

SQL Server - Consulta multiples palabras en un solo campo

Estas en el tema de SQL Server - Consulta multiples palabras en un solo campo en el foro de SQL Server en Foros del Web. Pues disculpe mi ignorancia en sql, tengo una pequeña pregunta.. imaginen que tengo una tabla de libros con un campo de contenido ó indice.. imaginen ...
  #1 (permalink)  
Antiguo 17/03/2008, 12:57
Avatar de hector2c  
Fecha de Ingreso: noviembre-2007
Ubicación: Perú - Tacna
Mensajes: 979
Antigüedad: 16 años, 5 meses
Puntos: 25
Pregunta SQL Server - Consulta multiples palabras en un solo campo

Pues disculpe mi ignorancia en sql, tengo una pequeña pregunta..

imaginen que tengo una tabla de libros con un campo de contenido ó indice..

imaginen que hago una busqueda, y desee buscar el libro con el contenido "PHP", pues seria algo asi como...

Código:
select  temasrelac from publicacion where temasrelac like '%php%'
pues, ahora, imaginen que dessee hace runa consulta con los indices que contengan PHP y MySQL, la consulta que se me viene a primera seria:

Código:
select  temasrelac from publicacion where temasrelac like '%php%' and temasrelac like '%mysql%'
pero me bota resultados como:
  • Trabajando con PHP 5
  • Trabajando con MySQL 5
  • Ejemplos PHP5 y MySQL5

Como ven, deberia darme resultados los libros que tengan el indice las palabras PHP y MySQL como el libro
  • Ejemplos PHP5 y MySQL5

que consulta es necesaria hacer para tener un resultado similar ??, espero me ayuden ,gracias
  #2 (permalink)  
Antiguo 17/03/2008, 19:33
Avatar de Gabo77  
Fecha de Ingreso: noviembre-2006
Mensajes: 381
Antigüedad: 17 años, 5 meses
Puntos: 6
Re: SQL Server - Consulta multiples palabras en un solo campo

En todo caso, podrías hacer una consulta como la siguiente

Código:
Select *
From Publicacion
Where TemasRelac Like '%PHP%MySQL%'
Saludos!
__________________
Hicimos un pacto con Dios... El no desarrolla Sistemas y nosotros no hacemos milagros....
  #3 (permalink)  
Antiguo 17/03/2008, 22:57
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
Re: SQL Server - Consulta multiples palabras en un solo campo

Cita:
Iniciado por Gabo77 Ver Mensaje
Código:
Select *
From Publicacion
Where TemasRelac Like '%PHP%MySQL%'
Sí, pero eso no funciona si "MYSQL" va antes que "PHP". Creo que tendrías que hacer una función que separe las palabras (tokenizar) para luego meterlas en LIKE ... AND LIKE ...

¿Full-text indexes?

O será que ya tengo sueño
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #4 (permalink)  
Antiguo 18/03/2008, 08:34
Avatar de hector2c  
Fecha de Ingreso: noviembre-2007
Ubicación: Perú - Tacna
Mensajes: 979
Antigüedad: 16 años, 5 meses
Puntos: 25
Re: SQL Server - Consulta multiples palabras en un solo campo

sep sep sep Mithrandir, tiene razon, con Select *From Publicacion Where TemasRelac Like '%PHP%MySQL%'

solo puedo hacer consultas con ese orden, alguien tendria otra opción para hacer una sonsulta de esa magnitud, gracias...
  #5 (permalink)  
Antiguo 18/03/2008, 08:39
Avatar de Gabo77  
Fecha de Ingreso: noviembre-2006
Mensajes: 381
Antigüedad: 17 años, 5 meses
Puntos: 6
Re: SQL Server - Consulta multiples palabras en un solo campo

Pots! no lo había visto tienes razón Mith.... la solucion que planteas es la correcta, solo que tendrías que hacerlo con consultas dinámicas...


saludos!
__________________
Hicimos un pacto con Dios... El no desarrolla Sistemas y nosotros no hacemos milagros....
  #6 (permalink)  
Antiguo 21/03/2008, 12:15
Avatar de hector2c  
Fecha de Ingreso: noviembre-2007
Ubicación: Perú - Tacna
Mensajes: 979
Antigüedad: 16 años, 5 meses
Puntos: 25
Re: SQL Server - Consulta multiples palabras en un solo campo

podrian poner un ejemplo de consultas dinamicas para poder dar solución a mi pequeño problema, gracias de ante mano...
  #7 (permalink)  
Antiguo 24/03/2008, 10:56
 
Fecha de Ingreso: julio-2007
Mensajes: 23
Antigüedad: 16 años, 10 meses
Puntos: 0
Re: SQL Server - Consulta multiples palabras en un solo campo

Este caso como presentais es incorrecto:

En todo caso, podrías hacer una consulta como la siguiente

Código:

Select *
From Publicacion
Where TemasRelac Like '%PHP%MySQL%'

- solo consulta con ese orden, primero la aparición de php y luego mysql

Select *
From Publicacion
Where TemasRelac Like '%PHP%' and TemasRelac like '%MySQL%'

consulta que ambas aparecen pero no distingue el orden
  #8 (permalink)  
Antiguo 25/03/2008, 18:27
 
Fecha de Ingreso: diciembre-2007
Mensajes: 3
Antigüedad: 16 años, 5 meses
Puntos: 0
Re: SQL Server - Consulta multiples palabras en un solo campo

Quizas sea demasiado rupestre, un UNION

select
temasrelac
from
publicacion
where
temasrelac like '%php%'
union
select
temasrelac
from
publicacion
where
temasrelac like '%mysql%'
  #9 (permalink)  
Antiguo 28/03/2008, 11:37
Avatar de Thumper  
Fecha de Ingreso: agosto-2004
Ubicación: Jesús María - Lima - Perú
Mensajes: 270
Antigüedad: 19 años, 8 meses
Puntos: 6
Re: SQL Server - Consulta multiples palabras en un solo campo

Amigo si solo van ha ser 2 parametros en vez de "and" deberias colocar "or"

select temasrelac
from publicacion
where temasrelac like '%php%' or temasrelac like '%mysql%'
__________________
Martín Alexis Valdivia S.
-----------------------------
"Quisiéramos cambiar el mundo, pero Dios no nos daría el código fuente." CAP
"Si Saber No Es Un Derecho, Seguro Será Un Izquierdo." WD
  #10 (permalink)  
Antiguo 04/04/2008, 13:47
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
Re: SQL Server - Consulta multiples palabras en un solo campo

Insisto con que el Full-Text Indexes es la solución. El problema es que jamás he tenido necesidad de usarlos y no los conozco. Pero esto es lo primero que lees en la ayuda:
Cita:
Iniciado por BOL
A Microsoft® SQL Server™ 2000 full-text index provides efficient support for sophisticated word searches in character string data. The full-text index stores information about significant words and their location within a given column. This information is used to quickly complete full-text queries that search for rows with particular words or combinations of words.
Documentate al respecto para que desarrolles tu solución en este sentido.
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
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 15:28.