Met deze MySQL-functie kun je eenvoudig tellen hoeveel woorden er in een tekst string zitten.

DELIMITER $$
CREATE FUNCTION wordcount(str TEXT)
       RETURNS INT
       DETERMINISTIC
       SQL SECURITY INVOKER
       NO SQL
  BEGIN
    DECLARE wordCnt, idx, maxIdx INT DEFAULT 0;
    DECLARE currChar, prevChar BOOL DEFAULT 0;
    SET maxIdx=char_length(str);
    WHILE idx < maxIdx DO
        SET currChar=SUBSTRING(str, idx, 1) RLIKE '[[:alnum:]]';
        IF NOT prevChar AND currChar THEN
            SET wordCnt=wordCnt+1;
        END IF;
        SET prevChar=currChar;
        SET idx=idx+1;
    END WHILE;
    RETURN wordCnt;
  END
$$
DELIMITER ;

Hoe aanroepen? Simpel, zet de functie om de string heen. Stel, je hebt een MySQL tabel met allerlei Adwords zoekwoorden die mensen gebruikt hebben, genaamd 'Keywords'. Je maakt een kolom aan, genaamd 'aantal woorden', die je vervolgens kunt updaten:

UPDATE `keywords` SET `aantal woorden` = wordcount(`Query`);

De bron is, zoals zo vaak, stackoverflow

p.s.: je hoeft niet perse een MySQL-functie te gebruiken. Dit is quick & dirty, maar niet perse schaalbaar. Veel programmeertalen hebben eigen functies die veelal krachtiger zijn met minder false positives. Denk bijvoorbeeld ook aan str_word_count() functie van PHP.

En nu jij. Wat is jouw volgende actie?

Onze artikelen schrijven we vooral om jou op weg te helpen. En mocht je meer hulp nodig hebben, dan weet je ons heus wel te vinden toch ;) Tip: lees meer over: Search analytics.

Vond je dit artikel nuttig? Ja? Mooi! Je doet ons (en mogelijk anderen ook) dan een groot plezier als je dit artikel deelt: