afin de rendre les choses plus faciles pour les utilisateurs je veux ajouter plusieurs mots-clés de recherche sur mon site. de sorte que dans l'entrée, l'utilisateur ferait quelque chose comme: "mot-clé1 mot-clé 2" (similaire à google par exemple aurais-je besoin d'écrire un code qui analyserait cette chaîne et faire des requêtes basées sur cela ou est-ce quelque chose construit MySQL qui pourrait le fairerequête multi-mots dans mysql
0
A
Répondre
2
Un moyen facile à mettre en œuvre ce serait:
SELECT * FROM table
WHERE column LIKE '%keyword1%'
OR column LIKE '%keyword2%';
Mais vous voudrez peut-être regarder full text search functions
Edit:. Oops, a oublié de traiter diviser l'entrée chaîne
En fonction de la langue que vous utilisez (PHP?):
Pour obtenir les mots-clés séparés, en supposant qu'ils sont séparés par des espaces:
$keywords = explode(" ", $searchquery);
Ensuite, vous pouvez utiliser une boucle pour créer la requête SQL:
$query = "SELECT * FROM table WHERE ";
for($i = 0; $i < count($keywords); $i++)
{
$query .= "column LIKE '%{$keywords[$i]}%'";
if($i < count($keywords) - 1) $query .= " OR ";
}
Questions connexes
- 1. DATE_FORMAT() dans MySQL requête
- 2. Requête spécifique dans Mysql
- 3. Rejoignez requête dans MySQL
- 4. Union requête dans mysql
- 5. Requête complexe dans mysql
- 6. requête Sélectionnez dans MySQL
- 7. La conversion d'une requête dans Oracle fusion mysql mySQL requête
- 8. requête mysql, réutilisation columnNames dans la requête
- 9. requête de requête mysql
- 10. mysql requête
- 11. requête de recherche dans mysql
- 12. Requête plus efficace dans mysql
- 13. Requête Mysql spécifique dans SubSonic
- 14. Requête MySQL dans la géométrie
- 15. requête MySQL où dans l'instruction
- 16. Rejoignez requête dans MySQL curseur
- 17. requête select MySQL Erreur
- 18. Requête mysql qui sélectionne une autre requête mysql
- 19. complexe requête Mysql
- 20. mysql numéro de requête
- 21. Mysql dynamique requête
- 22. MySQL requête aide
- 23. récursive MySQL requête
- 24. MySQL requête d'insertion
- 25. Optimisation de requête MySQL
- 26. Requête de jointure Mysql
- 27. avec requête MySQL
- 28. mysql trop longue requête
- 29. Choisir requête MySQL correcte
- 30. Requête MySQL conditionnelle
La partie mysql que je connais (ou du moins celle-là) mais était curieux si c'est comme ça que les moteurs de recherche le font? en divisant la chaîne de requête en plusieurs et en recherchant en utilisant la commande "or"? ou peut-être y a-t-il un moyen plus intelligent que je ne connais pas? merci – salmane
Désolé, j'ai ajouté quelques informations pour gérer la séparation de la chaîne d'entrée. J'ai supposé qu'il devait être divisé par espaces, mais je n'étais pas sûr du langage de programmation que vous utilisez. – JYelton
Les moteurs de recherche utilisent en effet une recherche en texte intégral. (Bien qu'il soit généralement un peu plus avancé que celui des bases de données SQL grand public). L'approche LIKE offre une évolutivité terrible, c'est pourquoi elle n'est pas utilisée. (En outre, les systèmes de recherche de texte intégral permettent généralement une certaine inexactitude dans l'orthographe, ce qui n'est pas le cas.) –