FoxPro/Visual FoxPro - ordenar resultados por coincidencias

   
Vista:

ordenar resultados por coincidencias

Publicado por kong (681 intervenciones) el 18/04/2008 19:01:55
Saludos gente.
Tengo una rutina para buscar coincidencias. Quisiera saber como se los puede ordenar el resultado segun mayor coincidencia.
.........................
nombrecampo="NombredelCampo"
frase=" "+ALLTRIM(thisform.text1.Value)+" "
CuentaPalabras=OCCURS(" ",frase)-1
IF LEN(ALLTRIM(frase))>0
FOR a=1 TO CuentaPalabras
palabra=UPPER(STREXTRACT(frase," "," ",a))
IF LEN(ALLTRIM(palabra))>0
IF a>1
condicion=condicion+" OR "+"'"+palabra+"'"+"$UPPER("+nombreCampo+")"
ELSE
condicion="'"+palabra+"'"+"$UPPER("+nombreCampo+")"
ENDIF
ENDIF
ENDFOR
condicion="("+condicion+")"
SELECT * FROM mitabla WHERE &condicion INTO CURSOR micursor
ENDIF
..........................
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:ordenar resultados por coincidencias

Publicado por jorge (422 intervenciones) el 18/04/2008 19:19:34
utiliza una Clausula ORDER BY Nombredelcampo ASC/DESC.

No seria lo mismo si en la sentencia SELECT usaras un LIKE ???
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ordenar resultados por coincidencias

Publicado por kong (681 intervenciones) el 18/04/2008 20:24:48
hola.
Ayudame mas.....Como va a ser la clausula?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ordenar resultados por coincidencias

Publicado por kong (681 intervenciones) el 19/04/2008 02:03:53
Si. Usar LIKE tambien funciona......
................
Con respecto a ORDER BY, te ordena segun como comienza y no por mayor coincidencias.
................
Por ejemplo quiero buscar "Alvaro Marin Quezada", y quiero que me ordene los resultados asi:
Alvaro Quezada
Alvaro Mendoza
Rodrigo Marin
Santiago Marin
Benito Quezada
Lorenzo Quezada
Marina Ortega
................
Algo asi como sale en los buscadores de google
Alguna idea, mi amigo?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ordenar resultados por coincidencias

Publicado por jorge (422 intervenciones) el 19/04/2008 03:02:23
Talves concatenando LIKE's logres el resultado que deseas

SELECT * from NOMBRES WHERE nombre LIKE '%ALVAREZ%' AND nombre LIKE '&JOSE%'...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar