Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    714

    [MYSQL] LIKE '%keyword%'

    Salve a tutti,
    con la sintassi

    WHERE nomecampo LIKE '%prova%', trova tutte quelle corrispondenze con la parola prova all'interno.

    Avrei bisogno di effettuare una ricerca geolocalizzata su comune e provincia.

    Es. se io scrivo MILANO, la sintassi e':

    WHERE comune LIKE '%Milano%' OR provincia LIKE '%Milano%'.

    Funziona tutto perfettamente. Unico problema e' l'ordinamento.

    Io vorrei che i risultassi venissero ordinati per attinenza in entrambi i campi.

    Quindi prima i campi con comune MILANO e provincia MILANO
    Poi i campi con comune MILANO
    Poi i campi con provincia MILANO.

    E' possibile senza utilizzare il MATCH AGAINST? Lo chiedo perche' con quel metodo l'esecuzione della query e' terribilmente lenta.

    Grazie,
    Antonio

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    A livello teorico dovrebbe essere una cosa del genere. Adattala alle tue esigenze.

    codice:
    select *,
    case
    when comune = 'milano' and provincia = 'mi' then 1
    when comune = 'milano' then 2
    when provincia = 'mi' then 3
    end as priorita
    from tabella where comune = 'milano' or provincia = 'mi'
    order by priorita
    P.S. Ma se il comune é Milano non lo sarà anche la provincia?

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    714
    Ciao,
    complimenti per la sintassi!

    E' ottima e funziona perfettamente.

    Rispondendo alla tua domanda. Si, ovvio che se il comune e' Milano lo sara' anche la provincia ma, una cosa e'

    Se l'utente cerca MILANO e lo controllo sia su comune sia su provincia ti restituisce i risultati contenenti MILANO, per dire se un comune a SIRACUSA si dovesse chiamare MILANOgino lo restituisce e siccome ordina "per inserimento", puo' darsi che lo pubblichi in cima.

    Con il tuo codice ho risolto, grazie mille

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.