我有一个名为“字典”的简单但巨大的表,它有 2 列。身份证和单词。 我有一个 php 字谜算法,可以创建给定单词的所有可能组合。我想检查这个词是否存在于我的字典中,如果存在则显示它。但我必须使用太多查询。例如,一个 9 个字母的单词是 362880 种组合。知道如何减少数据库调用吗?
最佳答案
尝试这样的事情:
SELECT word
FROM dictionary
WHERE word LIKE '%a%a%a%'
AND word LIKE '%n%'
AND word LIKE '%g%'
AND word LIKE '%r%'
AND word LIKE '%m%'
AND CHAR_LENGTH(word) = 7
更好的是,将字母的排序排列与单词一起存储,并在查询时对字母进行排序。
SELECT word
FROM dictionary
WHERE sorted_word = 'aaagmnr'
在 sorted_word
上添加索引以获得最佳性能。
关于php - Mysql 对 Anagram 求解器的多个查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10506668/