Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在MySQL数据库中查找与给定字符串具有最多共同单词的行_Php_Mysql_Sql - Fatal编程技术网

Php 在MySQL数据库中查找与给定字符串具有最多共同单词的行

Php 在MySQL数据库中查找与给定字符串具有最多共同单词的行,php,mysql,sql,Php,Mysql,Sql,我正在寻找一个调用,我需要在列字符串中进行搜索,并计算该条目与提供的字符串共有多少个单词 我一直在研究LCS,但我并不真正适合我,因为我不需要匹配实际的子序列,但我需要以任意顺序找到前4行,这4行与提供的字符串具有最多的共同单词 我已经下载了一些伪代码,以帮助解释其要点: query[] = array of keywords counter[] = map of rowid => counter do { keywords[] = (select tags from i´th r

我正在寻找一个调用,我需要在列字符串中进行搜索,并计算该条目与提供的字符串共有多少个单词

我一直在研究LCS,但我并不真正适合我,因为我不需要匹配实际的子序列,但我需要以任意顺序找到前4行,这4行与提供的字符串具有最多的共同单词

我已经下载了一些伪代码,以帮助解释其要点:

query[] = array of keywords
counter[] = map of rowid => counter

do {
  keywords[]  = (select tags from i´th row from db).explode(" ")

  foreach(word in query[]) {
    foreach(tag in keywords[]) {
      if(word == tag) {
        counter(rowid, count++)
      }
    }
  }
  i++
} while(i <= number_of_rows)

sorted_counter = sort_array_by_value(counter)
row1 = counter[0]
row2 = counter[1]
row3 = counter[2]
row4 = counter[3]
任何帮助都将不胜感激。它可以是SQL或PHP,而运行时并不是一个很大的因素


编辑:澄清

什么是您的存储引擎,什么是您的列类型?也许这可以帮助您查看参考手册;具体来说,@Victory InnoDB和类型是文本BratAnon&Barranka-我将查看链接,谢谢。