- Home
- Categorie
- Coding e Sistemistica
- MYSQL e altri Database
- Problema operatore jolly (*) in ricerca FullText con Mysql e PHP
-
Problema operatore jolly (*) in ricerca FullText con Mysql e PHP
Ciao a tutti ragazzi, ho un problema con una ricerca FullText fatta con PHP e MySQL, in pratica la ricerca ha un solo campo per ricerca il codice di un prodotto con la seguente stringa:
SELECT *, MATCH(codice) AGAINST('$codice') as score FROM prodotti WHERE MATCH(codice) AGAINST('$codice') ORDER BY score DESC
Ma ho dei problemi con l'operatore jolly *, vi faccio un esempio pratico:
Ipotizziamo che il codice del prodotto giusto sia ABCDE-5:
- Se io inserisco ABCDE-5, ABCDE-, ABCDE mi trova dei risultati mentre se inserisco ABCD non mi trova niente;
- Se inserisco ABCDE-5*, ABCDE-5, ABCDE-, ABCDE* mi fornisce dei risultati, mentre con ABCD* o cose del genere non mi fornisce niente;
- Se inserisco ABCDE5 mi da dei risultati, mentre con ABCD-5 oppure ABCD*5 non mi restituisce niente;
Volevo fare una ricerca su 3 livelli in modo che se non trova il codice esatto costruisco un array in cui ogni elemento è la stringa inserita in cui ogni carattere si sostituisce alternativamente con un *, quindi se inserisco ABCDE-5 e non trova niente avrò il seguente array:
ABCDE-5, BCDE-5, ACDE-5, ABDE-5, ABCE-5, ABCD-5, ABCDE5, ABCDE-, ABCDE-5*, ABCDE-5*
Poi effettuerò la ricerca per ogni elemento e quando trovo dei risultati fermo il ciclo, però non dandomi dei risultati provandolo a mano non posso usare questo metodo, dove sbaglio?
Grazie mille
-
Mi sa che stai confondendo * con %.
- è un selettore universale, ti seleziona l'intera riga che soddisfa la tua ricerca.
Se la ricerca la effettui su una stringa e vuoi no ncontrollo non di = ma di "contiene", devi mettere % prima e dopo la stringa che vuoi trovare
- è un selettore universale, ti seleziona l'intera riga che soddisfa la tua ricerca.
-
Perdonami, non ho mai usato la ricerca FullText però mi sono documentato.
Io intendo l'asterisco messo nella stringa fornita dalla variabile $codice non l'asterisco della selezione che ti seleziona tutta la riga.
Da quanto ho visto io non dovrebbe essere l'asterisco che nella ricerca FullText è uno degli operatori è significa "qualsiasi carattere"?Grazie
-
Nessuna sa dove potrei aver sbagliato?