Salut,
Code :
SELECT * FROM `post_prediction` WHERE `post_prediction_chaine` LIKE '%on est lundi, c'est toto qui mets son maillot de bain et qui plonge dans l'eau%'
|
Ce serait plutôt l'inverse :
Code :
SELECT * FROM `post_prediction` WHERE "on est lundi, c'est toto qui mets son maillot de bain et qui plonge dans l'eau" LIKE CONCAT('%', post_prediction_chaine, '%')
|
Non ?
Par contre, niveau pertinence, ça ne va pas casser des briques :
- des % dans les prédictions vont tout fausser
- la sous-chaîne doit exactement matcher (les mots je veux dire, les mêmes et dans le même ordre - tu peux toujours ignorer casse/accent - et rien qu'une faute d'orthographe et "ça marche pu" )
- plus la phrase à chercher est courte moins ce sera probant
Sans aller jusqu'à "réinventer la roue", il n'y a pas moyen de se baser sur un fulltext search ? Faire un MATCH AGAINT post_prediction_chaine et prendre la ligne avec le plus gros score de pertinence (si celui-ci dépasse un score minimal pré-établi) ? Je ne dis pas que ce sera 100 % accurate non plus mais je pense que ce serait déjà au moins 1000 fois mieux qu'une solution à base de LIKE (autant pour les performances que pour la pertinence).
Message édité par pluj le 23-07-2020 à 21:45:31