此问题与Fulltext search not working when searching the exact title
有关我正在努力学习如何有效地搜索数据库,并且遇到了似乎是最佳选择的FULLTEXT搜索。此时我的表格仍然很小,因为我还没有收集到大量数据。我有这个搜索表的SQL代码
SELECT * FROM table WHERE MATCH(title) AGAINST ('hamlet') LIMIT 30;
但由于只有一行,所以没有返回任何内容。允许查询返回信息会有什么变通方法?
谢谢
答案 0 :(得分:1)
这就是我的所作所为:
SELECT title ,
MATCH(title)
AGAINST ('hamlet' IN BOOLEAN MODE)
AS relevance
FROM test
WHERE MATCH(title)
AGAINST ('hamlet' IN BOOLEAN MODE)
HAVING relevance > 0 ORDER BY relevance DESC
使用的表:
CREATE TABLE IF NOT EXISTS `test` (
`id` tinyint(4) NOT NULL,
`title` varchar(255) collate utf8_unicode_ci NOT NULL,
PRIMARY KEY (`id`),
FULLTEXT KEY `name_2` (`title`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
--
-- Dumping data for table `test`
--
INSERT INTO `test` (`id`, `title`) VALUES
(2, 'hamlet');