Я новичок в "поиске" в MySQL, и у меня есть некоторые задачи, которые я не знаю, как их решить наилучшим образом.
У меня есть следующая MySQL-таблица в моей базе данных.
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$$
Задача: В HTML-форме я хочу ввести имя, скажем, «Джон Доу».Это имя следует искать в этой таблице, в столбце «имя».Я хочу, чтобы запрос возвращал все похожие имена, такие как "John Due" или "John Doé" и так далее.Таким образом, пользователь может выбрать из списка правильное имя.Иногда люди хотят найти такое имя, как «Джон ван Доу» (стиль Нидерландов).Это также должно отображаться в списке.
Как это лучше всего достигается?Или мне лучше спросить.Это возможно?=) Я, кстати, использую cgi-скрипт на python, поэтому доступны любые модули, которые может предоставить python.
Другой вопрос: как мне посмотреть «Джон» или «Доу»?Каждое имя, в котором есть «Джон», должно быть отображено.Я попробовал "ГДЕ НАМ НРАВИТСЯ" Джон "", но это слишком медленно.Есть ли более быстрый способ?
Спасибо за любые предложения.