我具有关键字搜索功能。我想要一个SQL查询来搜索数据库中单词的排列。如果我输入“ ABC”,则应该搜索所有组合词[“ ABC”,“ ACB”,“ BAC”,“ BCA”,“ CAB”,“ CBA”]。
我已经检查了多个选项,首先他们创建排列词,然后过滤数据。但是我的问题是,当我们输入长字符串eq时:-“ ABCDEFGIJ”,其置换单词数增加到“ 362880”单词。(长sql字符串花费大量时间进行搜索)
我需要一个/简单/快速查询来从数据库中过滤数据。
让我知道您是否有任何可能的解决方案。
存储您的数据:
------------------------
| Value | Sorted |
------------------------
| ABCD | ABCD |
| DCAB | ABCD |
------------------------
然后对搜索字符串进行排序,然后只需要搜索一次。适用于单词和通配符。
----------------------------- | Value | Sorted | ----------------------------- | In the hut | IN HUT THE | | In the dark | IN DARK THE | | In the zone | IN THE ZONE | | In our hut | IN HUT OUR | -----------------------------
搜索In the
将搜索IN*THE
并找到3个结果搜索
In hut
将搜索IN*HUT
并找到2个结果