Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Ricerca in un campo longtext MySql

    Ciao Ragazzi sto lavorando su un database MySql ho un campo longtext con dentro diverse parole tipo keyword esempio:

    mele , pere , angurie , patate

    vorrei fare una ricerca dentro questo campo.

    oRa sto utilizzando nella sql la funzione

    WHERE CAMPO LIKE '% "ricerca" %'

    la cosa funziona solo se inserisco parti di una parola Esempio:

    mele oppure mel

    nel campo di ricerca però dovrebbero inserire più parole ad esesmpio

    mele pere

    vorrei visualizzare quindi tutti i record che contengono quelle parole (keywords) dentro il campo

    che funzione devo usare?

    grazie


  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Devi usare le ricerce fulltext.

    E' necessario quindi che l'engine della tabella sia myisam e non innodb.

    Devi definire un indice fulltext sul/i campo/i oggetto della ricerca.


    alter table nome_tabella add fulltext index ricerca (nome_campo_in_cui_cercare)

    E poi esegui la query

    codice:
    select * from tabella
    where match(nome_campo) against ('mele angurie pere' in boolean mode)
    Ti verranno restituiti tutti i record che contengono almeno una delle voci inserite.

    Tutti i dettagli li trovi qui

    http://dev.mysql.com/doc/refman/5.0/...xt-search.html

  3. #3

    ne approfitto

    grazie mille funziona ma visto che ci sono ti chiedo un'altra cosa:
    se invece volessi visualizzare solo dei risultati con le parole precise ?

    ovvero se ricerco 'mele pere' e in un record ho solo 'mele' non lo voglio vedere

    voglio che mi visualizzi in questo caso solo i record che hanno nel campo indicizzato sia mele che pere.

    grazie mille

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Sul manuale che ti ho linkato trovi tutti i dettagli sulle ricerche fulltext.

    codice:
    select * from tabella
    where match(campo) against ('+mele +pere' in boolean mode)

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.