【发布时间】:2020-02-21 08:14:53
【问题描述】:
我有关键字搜索功能。我想要一个 sql 查询来搜索数据库中单词的排列。 如果我输入 "ABC" 那么它应该搜索 ["ABC", "ACB", "BAC", "BCA", "CAB", "CBA"] 所有的组合词。
我检查了多个选项,首先他们创建排列词然后过滤数据。但我的问题是当我们输入长字符串 eq 时:-“ABCDEFGIJ”它的排列词数增加到“362880”词。(长 sql 字符串需要很多时间来搜索)
我需要一个单一/简单/快速的查询来过滤数据库中的数据。
如果您有任何可能的解决方案,请告诉我。
【问题讨论】:
-
您好,欢迎来到 StackOverflow。虽然许多用户愿意为陷入困境的编码人员编写代码,但他们通常只有在发布者已经尝试自己解决问题时才会提供帮助。展示这项工作的一个好方法是包含您迄今为止编写的代码、示例输入(如果有的话)、预期输出以及您实际获得的输出(控制台输出、回溯等)。您可能还想了解Minimal, Complete, and Verifiable Examples。
-
规范化您的数据 - 用它们的排列替换关键字(或添加一个更多字段),其中所有符号都已排序。然后对搜索条件执行相同操作。
-
这个discussion 也可能有帮助。
-
@Satishsehgal 。 . .我删除了不一致的数据库标签。请仅使用您真正使用的数据库进行标记。
标签: sql ruby-on-rails-5