0

単語の表とフレーズの表があります。各単語を含むフレーズの数を数えたいのですが。

このクエリは、(単語、フレーズ)ペアのリストを表示します。カウントを取得するにはどうすればよいですか?それを行うためのより効率的な方法はありますか?

words.word、phrases.phraseを選択します

左の単語からフレーズに参加

onphrases.phrase rlike concat('(^ | [^ az])'、words.word、'($ | [^ az])');

4

1 に答える 1

0

GROUP BY既存のクエリを使用して、句とを追加できますCOUNT

SELECT
    words.word,
    COUNT(phrases.phrase) as Count
FROM
    words
    LEFT JOIN phrases
        ON phrases.phrase RLIKE CONCAT('(^|[^a-z])', words.word, '($|[^a-z])')
GROUP BY
    words.word

または、結合の代わりにサブクエリを使用してこれを実現できます。

SELECT
    words.word,
    (SELECT COUNT(*)
        FROM phrases
        WHERE phrase RLIKE CONCAT('(^|[^a-z])', words.word, '($|[^a-z])')
    ) AS Count
FROM words
于 2012-07-27T15:12:14.683 に答える