1

我需要在我的数据库中搜索一些数据。但主要问题是我搜索匹配:

...MATCH(description) AGAINST ("*52*" in boolean mode)

但是在一次迭代(或更多,但有一个查询)中,我不仅要搜索 52,而且还要50,51,52,...,59 像以前一样搜索......但是这样做真的吗?我也用 RoR 来做:

 @accums = Accumulator.find(:all, :conditions => ["MATCH(description) AGAINST (? in boolean mode)", size])

或者我需要在rails上做迭代器,并逐个迭代地搜索它们?

4

1 回答 1

0

如果你说:

 MATCH(description) AGAINST ("*52*" in boolean mode)

针对“描述”所在的行:

34,520,1000,9000

或者

34,452,1000,9000

或者

34,4525,1000,9000

你会得到一场比赛。这是你想要的结果吗?

我猜不是。

我想你想要的是:

MATCH(description) AGAINST ("52" in boolean mode)

并处理您想要的多个匹配项:

MATCH(description) AGAINST ("51 52 53" in boolean mode)

例子:

34,520,1000,9000
// no match

34,452,1000,9000
// no match

34,52,1000,9000
// match

34,53,1000,9000
// match

34,52,53,9000
// match

未经测试。

于 2012-11-08T02:56:33.067 回答