Anagram求解器(最佳实践)

时间:2016-01-05 11:14:51

标签: mysql

有点新的mysql,我正在创建一个游戏,我的算法从一个表中选择一个单词,其中包含英语词典,用户应该猜出可以从该单词派生的有效英语单词。但是,每次用户提交答案以检查其有效性时,我都不想搜索数据库。所以我想要一种方法来查询我的字典表并检索可以从根词的字母形成的每个单词,以便我将这些单词存储在应用程序中,并且每当用户提交我从该列表中检查的单词以减少数据使用时

E.g root word:contaminate
submissions: eat is valid so will show in the generated list
         mind is invalid because 'd' is not in root word so won't show in query results.

如果有办法只使用查询来执行此操作,或者必须添加php以使其正常工作,我将很乐意得到任何帮助。谢谢。

2 个答案:

答案 0 :(得分:0)

您应该在字典表上创建一个新列,然后运行一个算法,用匹配的数量填充它。

所有这些"%喜欢%"运行期间的查询性能极低,但如果你预先计算这个字段,那么事情就会立即发生。

我不知道如何使用单个查询执行此操作,您需要将单词拆分为较小的单词,然后查询字典表。

例如:

{{1}}

编辑:(抱歉,我误解了你的问题)

请参阅:mysql: Anagram query to pull every possible word with any letters

答案 1 :(得分:0)

如果您在表格中填充另一列,并按字母顺序排列每个单词的字母,例如:

silent eilnst
listen eilnst

这可以在构建你的桌子时填充一次。

然后,您可以查询一次表格,以获得与您原始选择中字母完全相同的所有字词。