MYSQL GROUP BY returns 全文搜索没有结果

MYSQL GROUP BY returns no results with FULLTEXT SEARCH

我有以下 MYSQL 架构:

CREATE TABLE IF NOT EXISTS `tag` (
   `id` SMALLINT UNSIGNED NOT NULL,
   `tag` VARCHAR(15) NOT NULL,
   FULLTEXT INDEX(`tag`),
   PRIMARY KEY (`id`,`tag`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO `tag`(`id`,`tag`) VALUES
('1','motor'),
('2','motor');

我想将 tag table 中的 select 行按 tag 列分组。我运行以下命令:

SELECT COUNT(id),tag FROM tag
GROUP BY tag

预期结果:

COUNT(id) | tag
------------------
    2     | motor

实际结果: no rows returned

如果我从 table 中删除 FullText 索引,结果会如预期的那样 return。我不知道将 fulltextgroup

一起使用时出了什么问题

更新 经过进一步研究,问题似乎出在复合主键上。如果我切换到单列主键,查询将再次运行,但我需要为此使用复合键 table,因为同一个 ID 可能有多个标签。

我创建了一个 SQL fiddle 供您尝试: http://sqlfiddle.com/#!9/1f765d/1/0

终于发现问题了。引擎在执行查询时有 2 个索引可供选择,最终根本不使用任何索引并且不返回任何结果。

这很可能是一个错误。在这种情况下,FORCE INDEX 作为解决方法派上了用场。

所以最后的工作命令:

SELECT COUNT(id),tag FROM tag
FORCE INDEX(PRIMARY)
GROUP BY tag

这是 fiddle 更新后的代码: http://sqlfiddle.com/#!9/a8568/21/0

谢谢大家!