sql >> Database >  >> RDS >> Mysql

Hoe de frequentie van een woord op een rij te krijgen met mysql fulltext?

Maak een door de gebruiker gedefinieerde functie zoals deze

DELIMITER $$

CREATE FUNCTION `getCount`(myStr VARCHAR(1000), myword VARCHAR(100))
    RETURNS INT
    BEGIN
    DECLARE cnt INT DEFAULT 0;
    DECLARE result INT DEFAULT 1;

    WHILE (result > 0) DO
    SET result = INSTR(myStr, myword);
    IF(result > 0) THEN 
        SET cnt = cnt + 1;
        SET myStr = SUBSTRING(myStr, result + LENGTH(myword));
    END IF;
    END WHILE;
    RETURN cnt;    

    END$$

DELIMITER ;

Dan kunt u dit als volgt in uw zoekopdracht gebruiken

select id, getCount(concat(FREETEXT, Third_col), 'test') from yourtable

Ik hoop dat het helpt




  1. 3 manieren om alle tabellen te retourneren ZONDER een primaire sleutel in SQL Server

  2. Verschil tussen sys.objects, sys.system_objects en sys.all_objects in SQL Server

  3. Hoe een standalone Moodle te migreren naar een schaalbare configuratie van een geclusterde database

  4. bijgevoegde database is alleen-lezen