Выберите коммутативную сумму Mysql каждой строки

Это может быть не идеально, но одна возможность состоит в том, чтобы разбить обе строки на слова, вы можете применить similar_text к каждому набору слов из $string2 такого же размера, как $string1.

$needle_word_count = count(preg_split('/\W+/', $string1));

$haystack_words = preg_split('/\W+/', $string2);

$n = count($haystack_words) - $needle_word_count;
for ($i = 0; $i <= $n; $i++) {
    $words = array_slice($haystack_words, $i, $needle_word_count);
    $substring = implode(' ', $words);
    $results[$substring] = similar_text($substring, $string1);
}
arsort($results);

/* $results:

array (size=17)
  'adipisicing elit' => int 11
  'consectetur adipisicing' => int 8
  'sit amet' => int 5
  'labore et' => int 5
  'eiusmod tempor' => int 4
  'dolor sit' => int 4
  'ipsum dolor' => int 4
  'tempor incididunt' => int 4
  'Lorem ipsum' => int 3
  'incididunt ut' => int 3
  'sed do' => int 3
  'do eiusmod' => int 3
  'elit sed' => int 3
  'amet consectetur' => int 3
  'dolore magna' => int 3
  'et dolore' => int 2
  'ut labore' => int 1
*/
8
задан Ish 11 May 2009 в 12:01
поделиться

2 ответа

Форум MySQL помог мне !!!

mysql> set @my_var=0;
mysql> select frq, @my_var:=@my_var+frq as commutative_sum from `mytable`

Это хорошо работает с моими подпрограммами mysql.

12
ответ дан 5 December 2019 в 06:54
поделиться

ИМХО, это должно обрабатываться программной логикой, а не SQL. Если вы все еще хотите ...:

   SELECT a.frq, sum(b.frq)
     FROM table a
     JOIN table b ON a.id >= b.id
 GROUP BY a.frq
12
ответ дан 5 December 2019 в 06:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: