【问题标题】:MySQL Match Against and Group by Multiple termsMySQL 匹配和分组多个术语
【发布时间】:2013-02-09 14:24:19
【问题描述】:

我有可用的数据出现在 cmets 中。 cmets实际上是关于PHP,Java等技能的。

现在我想以一种可以找到按技能分组的总记录的方式使用 Match Against。因此,例如,如果我将数据与某些技能进行匹配,则数据应显示为:

Skills    Total
..................
Java     10
PHP       5

类似的东西。

【问题讨论】:

  • 技能列表的来源是什么?您是否有一个包含每个名称的行的技能表?
  • 嗯.. 是的,这将在一个表/数组中

标签: mysql match-against


【解决方案1】:

http://www.sqlfiddle.com/#!2/fcea4/1

SELECT skill, sum(comment REGEXP skill)
FROM comments,skills
GROUP BY skill

【讨论】:

  • 看起来很神奇,会不会有效率?该列的类型为 text 并具有 Full Text 搜索
  • 应该没问题,但当然数据量会一如既往地影响解决方案。
  • 是否完全匹配?在原始数据中,我发现一个术语的出现次数比查询返回的要多。例如它省略了 Javascript
  • 好的,刚刚重新检查,查询总是返回比实际更少的出现次数。
  • 这当然是对评论表进行全表扫描。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-23
  • 1970-01-01
  • 2020-04-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多