Mysql
 sql >> Database >  >> RDS >> Mysql

Come cercare una frase all'interno di una tabella SQL

Il problema dell'errore di ortografia è difficile, se non impossibile, da risolvere bene in MySQL puro.

Il FULLTEXT a più colonne la ricerca non è così male.

La tua richiesta sarà simile a questa...

 SELECT column, column
   FROM table
  WHERE MATCH(Company, FirstName, LastName, whatever, whatever) 
      AGAINST('search terms' IN NATURAL LANGUAGE MODE)

Produrrà una serie di risultati, ordinati in base a ciò che MySQL ritiene sia il primo colpo più probabile. Le ipotesi di MySQL non sono ottime, ma di solito sono adeguate.

Avrai bisogno di un FULLTEXT indice corrispondente all'elenco di colonne nel tuo MATCH() clausola. La creazione di quell'indice è simile a questa.

ALTER TABLE book 
ADD FULLTEXT INDEX Fulltext_search_index_1 
    (Company, FirstName, LastName, whatever, whatever);

Nonostante i commenti nella tua domanda, hai solo bisogno di un indice per il gruppo di colonne che cercherai.

20.000 righe non saranno un grosso onere per l'hardware del server vintage recente.

Errore di ortografia:puoi provare SOUNDEX() , ma è un algoritmo dell'inizio del XX secolo progettato dal Bell System per cercare i nomi delle persone nell'inglese americano. È progettato per ottenere molti falsi positivi ed è davvero più stupido di un secchio di sassi.

Se hai davvero bisogno della correzione ortografica, potresti dover indagare sulla Sfinge.