我正在使用 sql 和 ruby 开发一个基本的单词查找器应用程序,其中我有一组字母来查找可用的单词。通过缩小数组中不包含的字母来更容易进行查询。例如。
alphabet= %w{a b c d e f g h i j k l m n o p q r s t u v w x y z}
available_letters = %w{p k z l p m t l n g g r u a r t n d z w a l m n e}
然后,我可以从字母表中减去要从我的搜索中排除的字母,并最终得到一个如下所示的 sql 查询。
select * from words
where word not like '%b%' and word not like '%c%' and word not like '%f%'.....
这为我提供了所有可用单词以及所有可用字母的组合。它不会按字母出现的次数来缩小范围。因此,如果我只有一个“E”,我希望查询缩小只包含一个 e 的单词。我不确定这是否可以通过 sql 查询来完成,或者我是否需要使用过程。有谁知道解决这个问题的好方法?