4

我有一个 MySQL 食谱数据库。其中一列 NAME 是 varchar(255)。每个名称可以是多个单词(例如,“Chocolate Chip Cookies”和“Oatmeal Cookies”)。

我正在寻找一种方法来有效地将食谱名称解析为单个单词,然后返回最常用单词的列表。因此,鉴于上面的两个配方,查询将返回:

饼干、2 块巧克力、1 块薯片、1 块燕麦片、1

有没有一种有效的方法来做到这一点?我可以查询所有结果,将每个配方名称拆分为单词,然后在数据库之外构建一个数据结构来执行此操作。或者,我可以提前拆分字符串并建立一个表格。

我想我真正希望的是利用数据库更快地做到这一点(就像使用索引一样)。我不知道这是否可以通过单个查询来实现。

那么,我是否被困在提前建一张桌子上?或者这可以通过单个查询有效地完成吗?

谢谢!

4

1 回答 1

1

如果您的表使用 MyISAM 存储引擎并且您在列上构建FULLTEXT索引NAME,则可以使用myisam_ftdump 的--count选项来获取每个单词的总计数。然而,遗憾的是,这将在 SQL 之外。

于 2012-10-17T16:44:36.217 回答