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

Anteporre un * (asterisco) a una ricerca fulltext in MySQL

Quello che potresti fare è creare un'altra colonna nel tuo database con l'indice di ricerca full-text, questa nuova colonna dovrebbe avere la stringa invertita della colonna su cui stai tentando di cercare, e invertirai la query di ricerca e la userai per cercare nel colonna invertita, ecco come apparirà la query:

SELECT * FROM table WHERE MATCH(column1) AGAINST ("$key*" IN BOOLEAN MODE) OR MATCH(reversedColumn1) AGAINST ("$reveresedkey*" IN BOOLEAN MODE)
  • la prima condizioneMATCH(column1) AGAINST ("$key*" IN BOOLEAN MODE) esempio:reversedColumn1==>Jmaes $reveresedkey*==>ames* cercherà le parole che iniziano con ames ==> nessuna corrispondenza

  • la condizione dei secondiMATCH(reversedColumn1) AGAINST ("$reveresedkey*" IN BOOLEAN MODE) esempio:reversedColumn1==>semaJ $reveresedkey*==>sema* cercherà parole che terminano con ames ==> abbiamo una corrispondenza

Questa potrebbe non essere una cattiva idea se il tuo testo è breve: