Je suis nouveau à "chercher" dans MySQL et j'ai quelques tâches, dont je ne sais pas comment les atteindre de la meilleure façon.Fulltext Recherche dans MySQL
J'ai la table MySQL suivante dans ma base de données.
delimiter $$
CREATE TABLE `authors` (
`id` int(11) NOT NULL,
`name` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
`count` int(11) NOT NULL DEFAULT '1',
PRIMARY KEY (`id`),
UNIQUE KEY `name_UNIQUE` (`name`),
FULLTEXT KEY `name_fulltext` (`name`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci$$
La tâche est la suivante: Dans une forme html, je veux entrer un nom, disons "John Doe". Ce nom doit être recherché dans cette table, dans la colonne "nom". Je veux la requête pour retourner tous les noms similaires comme "John Due" ou "John Doé" et ainsi de suite. Ainsi, l'utilisateur peut choisir dans une liste le bon nom. Parfois, les gens veulent rechercher un nom comme "John van Doe" (style néerlandais). Cela devrait être affiché aussi dans la liste.
Comment cela est-il le mieux réalisé? Ou devrais-je mieux demander. Est-ce possible? =) J'utilise d'ailleurs un script cgi python, donc tous les modules que python peut contribuer sont disponibles.
Une autre question est: Comment puis-je rechercher juste "John" ou "Dow"? Chaque nom qui a "John" doit être affiché. J'ai essayé "O WH nom comme" John "" mais c'est trop lent. Y at-il un moyen plus rapide?
Nous vous remercions de vos suggestions.
Personnellement, je pense que vous devriez vous pencher un peu sur la normalisation de la base de données. –