Istruzione sql valori "simili"

solari77

Utente Attivo
6 Ott 2016
119
1
18
Ciao a tutti, esiste un istruzione MySQL tipo LIKE che però mi restituisca anche valori simili e non necessariamente identici?
Mi spiego:
Ho un campo con scritto: "la grande mela"
Se cerco " Nella grande mela" non ho una corrispondenza esatta, però vorrei che mi restituisse " la grande mela ".
Chiaramente i record cambiano quindi non c'è una regola che magari dice che la parte finale corrisponde.
E' possibile avere come risultato record simili e non necessariamente identici?
Grazie a tutti
 
like '%mela%'
trova sia " la grande mela " che " Nella grande mela"

deve essere definita una parola ( o più ) prioritaria con cui fare la ricerca

la parola può essere anche non completa ma genera spesso risultati non attinenti ( mel% -> mela, mele, melatonina …… )

la presenza o assenza del simbolo "%" ha la sua valenza

mi capitò qualche anno fa, di dover creare un indice delle parole per eliminare la selezione di risultati non attinenti

non so se è sufficiente ….
 
like '%mela%' non va bene, perchè come ti dicevo io ho magari "la grande mela " e devo cercare "nella grande mela"
Ho spiegata bene il mio problema ?
 
Dati provati
1 nella grande mela
2 la grande mela
3 sopra la mela
4 nella terra di mezzo della grande mela
5 la grande melatonina
6 sopra la grande mela
7 in mezzo alla mela, abbiamo una grande mela


Prova con questa dovrebbe fare al caso tuo:
Codice:
SELECT
  id,
  string,
  ROUND ((LENGTH(string)- LENGTH( REPLACE (string, "la grande mela", ""))) / LENGTH("la grande mela")) AS seq
FROM TABLE
 WHERE ROUND ((LENGTH(string)- LENGTH( REPLACE (string, "la grande mela", ""))) / LENGTH("la grande mela")) >= 1
 ORDER BY seq DESC


Risultato da query per "la grande mela"
1 nella grande mela 1
2 la grande mela 1
4 nella terra di mezzo della grande mela 1
5 la grande melatonina 1
6 sopra la grande mela 1


Risultati da query per "la mela"
3 sopra la mela 1
7 in mezzo alla mela, abbiamo una grande mela 1

Risultati per "mela":
7 in mezzo alla mela, abbiamo una grande mela 2
1 nella grande mela 1
2 la grande mela 1
3 sopra la mela 1
4 nella terra di mezzo della grande mela 1
5 la grande melatonina 1
6 sopra la grande mela 1
 
Se cerco " Nella grande mela" non ho una corrispondenza esatta, però vorrei che mi restituisse " la grande mela "

come detto, non mi sembra possibile, non conosco funzioni che "approssimino" dei testi
1576697778142.png


con il "like", si ottiene lo stesso risultato ottenuto con il conteggio delle occorrenze per testo
1576697945162.png
 

Discussioni simili