Mysql
 sql >> Base de données >  >> RDS >> Mysql

Ajout d'un * (astérisque) à une recherche en texte intégral dans MySQL

Ce que vous pouvez faire est de créer une autre colonne dans votre base de données avec un index de recherche en texte intégral, cette nouvelle colonne doit avoir la chaîne inversée de la colonne sur laquelle vous essayez de rechercher, et vous inverserez la requête de recherche et l'utiliserez pour rechercher sur le colonne inversée, voici à quoi ressemblera la requête :

SELECT * FROM table WHERE MATCH(column1) AGAINST ("$key*" IN BOOLEAN MODE) OR MATCH(reversedColumn1) AGAINST ("$reveresedkey*" IN BOOLEAN MODE)
  • la première conditionMATCH(column1) AGAINST ("$key*" IN BOOLEAN MODE) exemple :reversedColumn1==>Jmaes $reveresedkey*==>ames* recherchera les mots commençant par ames ==> pas de correspondance

  • la condition des secondesMATCH(reversedColumn1) AGAINST ("$reveresedkey*" IN BOOLEAN MODE) exemple :reversedColumn1==>semaJ $reveresedkey*==>sema* recherchera les mots qui se terminent par ames ==> nous avons une correspondance

Ce n'est peut-être pas une mauvaise idée si votre texte est court :