我有一个简单但很大的表,叫做’字典’,有两列. Id和单词.
我有一个php anagram算法可以创建给定单词的所有可能组合.如果我的字典中存在该单词并且如果是则显示它,我想知道.但我必须使用太多的查询.例如,9个字母的单词是362880个组合.有没有想过如何减少db调用?
解决方法:
虽然我不知道这样的查询有多高效,但是只针对一个查询尝试这样的事情:
$possibilities = array( "at", "ta");
$sql = 'SELECT * FROM dictionary_table
WHERE word IN ("' . implode( '", "', $possibilities) . '")';
这将生成SQL查询:
SELECT * FROM dictionary_table
WHERE word IN ("at", "ta")
好处是查询是动态的,所以无论有多少美元的可能性,这在理论上都可行.为了提高效率,我肯定会将单词列索引.