我是新來的「搜索」MySQL中,我有一些任務,我不知道如何實現他們的最佳方式。全文搜索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 Doe」。這個名字應該在這個表中的名字列中查找。我希望查詢返回所有類似的名稱,如「John Due」或「JohnDoé」等。所以用戶可以從列表中選擇正確的名稱。有時人們想要查找一個像「John van Doe」(荷蘭風格)這樣的名字。這應該也顯示在列表中。
這最好的實現方式是什麼?或者我應該更好地問。這可能嗎? =)我正在使用python cgi-script,所以任何模塊python都可以提供。
另一個問題是:我如何查找只是「John」或「Dow」?應顯示每一個有「約翰」的名字。我嘗試了「在哪裏名字像」約翰「」但這太慢了。有更快的方法嗎?
謝謝你的任何建議。
我個人認爲你應該考慮一點數據庫規範化。 – 2011-04-01 12:06:20