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

    ricerca full text o no?

    scusate la domanda un pò stupida ma non so che tipo di ricerca utilizzare per il mio db.
    si tratta di un db gestionale per una libreria, io vorrei che fosse possibile scrivere ad esempio anche più parole troncate ed avere sempre il risultato.

    esempio se uso WHERE e scrivo sig mi trova comunque l'articolo inserito nel database con sig dentro tipo il signore degli anelli ma se scrivo sig anelli non mi trova più nulla.
    con la ricerca full test e MATCH se scrivo signore anelli me lo trova ma non funziona con le parole troncate, cosa mi conviene usare?
    posso usare la ricerca full text per le parole troncate?

  2. #2
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    devi usare l'operatore * assieme alla parola da cercare:

    'apple*'
    Find rows that contain words such as ``apple'', ``apples'', ``applesauce'', or ``applet''.

    http://dev.mysql.com/doc/mysql/en/Fulltext_Boolean.html
    http://freephp.html.it/articoli/view...p?id=125&pag=3
    think simple think ringo

  3. #3
    ci avevo già provato ad usare l'asterisco ma nulla da fare, esempio

    $query = "SELECT * FROM tabella WHERE MATCH (titolo) AGAINST ('$cerca*') ORDER BY titolo ASC";

    che manca?

  4. #4
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    la ricerca booleana presuppone l'uso di una versione di mySQL pari o superiore alla 4.0.1.
    prova con le graffe oppure con il ".

    $query = "SELECT * FROM tabella WHERE MATCH (titolo) AGAINST ('{$cerca}*') ORDER BY titolo ASC";
    $query = "SELECT * FROM tabella WHERE MATCH (titolo) AGAINST ('".$cerca."*') ORDER BY titolo ASC";
    think simple think ringo

  5. #5
    Utente di HTML.it L'avatar di kuarl
    Registrato dal
    Oct 2001
    Messaggi
    1,093
    Originariamente inviato da marketto
    la ricerca booleana presuppone l'uso di una versione di mySQL pari o superiore alla 4.0.1.
    prova con le graffe oppure con il ".

    $query = "SELECT * FROM tabella WHERE MATCH (titolo) AGAINST ('{$cerca}*') ORDER BY titolo ASC";
    $query = "SELECT * FROM tabella WHERE MATCH (titolo) AGAINST ('".$cerca."*') ORDER BY titolo ASC";
    correggo marketto, versione pari o superiore alla 4.1.1, che non è ancora stabile al momento

  6. #6
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    Originariamente inviato da kuarl
    correggo marketto, versione pari o superiore alla 4.1.1, che non è ancora stabile al momento

    opsss, avrò letto male sul sito di mySQL
    think simple think ringo

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.