Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1
    Utente di HTML.it L'avatar di flash20
    Registrato dal
    Dec 2003
    Messaggi
    567

    Ordinare risultati estratti con la clausola LIKE

    Ciao a tutti, ho un problema, come posso ordinare i risultati di una selezione SQL dove viene usata la clausola LIKE? Vi faccio un esempio che è più facile capire cosa intendo:

    esempio codice usato per la selezione:
    codice:
    sql="select * nome LIKE '%" & variabile1 & "%' and nome LIKE '%" & variabile2  & "%'" and nome LIKE '%" & variabile3  & "%'"
    variabile1= pippo
    variabile2= pluto
    variabile3= paperino

    Io vorrei che i risultati estratti vengono ordinati in questo modo:
    1° tutti i record dove hanno sia pippo che pluto che paperino
    2° tutti i record dove hanno pippo e pluto oppure pippo e paperino oppure pluto e paperino
    3° tutti i record dove hanno o pippo o pluto o paperino


    Spero di essere stato chiaro, come posso fare?

  2. #2
    Utente di HTML.it L'avatar di wallrider
    Registrato dal
    Apr 2003
    Messaggi
    2,755
    dovresti inventarti una specie di funzione che da uno score al campo nome in base ai parametri che ci hai detto e ordinarli in base a quello
    RIP Cicciobenzina 9/11/2010

    "Riseminaciceli, i ceci nell'orto"

  3. #3

    Re: Ordinare risultati estratti con la clausola LIKE

    Originariamente inviato da flash20
    Io vorrei che i risultati estratti vengono ordinati in questo modo:
    1° tutti i record dove hanno sia pippo che pluto
    2° tutti i record dove hanno pippo e pluto oppure pippo e paperino oppure pluto e paperino
    3° tutti i record dove hanno o pippo o pluto o paperino


    Spero di essere stato chiaro, come posso fare?
    forse volevi dire che al primo posto vanno quelli che hanno sia pippo che pluto che paperino.

    ovvero, più rispondenze trovi, prima vengono elencati

  4. #4
    Utente di HTML.it L'avatar di flash20
    Registrato dal
    Dec 2003
    Messaggi
    567
    Si scusate mi ero dimenticato paperino ora ho sistemato.

    Non saprei come farla la funzione hai delle indicazioni di massima su come dovrei impostarla?

  5. #5

  6. #6
    Utente di HTML.it L'avatar di flash20
    Registrato dal
    Dec 2003
    Messaggi
    567
    MySql

  7. #7
    potresti allora fare una Stored Procedure dove

    1. estrai i record in una tabella temporanea #tmp, aggiungendo un campo SCORE
    2. fai una update della temp così
    UPDATE #tmp SET score=score+1 WHERE nome like '%pluto%'
    e poi per le altre due
    3. fai una SELECT della #tmp ORDER BY SCORE

    questo è il processo che userei per M$SQL, forse per MySql si fa in modo diverso

  8. #8
    Utente di HTML.it L'avatar di flash20
    Registrato dal
    Dec 2003
    Messaggi
    567
    Umm devo ragionarci un po' su e crearlo, non mi sembra facilissimo, ma sembra funzionare

  9. #9
    Utente di HTML.it L'avatar di flash20
    Registrato dal
    Dec 2003
    Messaggi
    567
    Sono un po' in difficoltà, non ho mai usato procedure simili, ti posto il codice di selezione che ho utilizzato, riesci a guidarmi un pochino????

    codice:
    sql = "SELECT * FROM db WHERE stato='"&niente&"' and"
    	
    for i = 0 to ubound(stringa)
    
    if not stringa(i)="" then
    sq =" nome LIKE '%" & stringa(i) & "%'"
    
    sql=sql&sq
    end if
    Next
    
    sql=sql&" LIMIT " & (currentPage - 1) * pageSize & ", " & pageSize
    
    set rs=conn.execute(sql)
    Grazie mille

  10. #10
    Originariamente inviato da flash20
    Sono un po' in difficoltà, non ho mai usato procedure simili, ti posto il codice di selezione che ho utilizzato, riesci a guidarmi un pochino????

    codice:
    sql = "SELECT * FROM db WHERE stato='"&niente&"' and"
    	
    for i = 0 to ubound(stringa)
    
    if not stringa(i)="" then
    sq =" nome LIKE '%" & stringa(i) & "%'"
    
    sql=sql&sq
    end if
    Next
    
    sql=sql&" LIMIT " & (currentPage - 1) * pageSize & ", " & pageSize
    
    set rs=conn.execute(sql)
    Grazie mille
    c'entra qualcosa col discorso di prima?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.