sql >> Database teknologi >  >> RDS >> Mysql

Sådan får du frekvensen af ​​et ord i en række ved hjælp af mysql fuldtekst

Opret en brugerdefineret funktion som denne

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 ;

Så kan du bruge dette i din forespørgsel som følger

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

Håber det hjælper




  1. MYSQL-opdatering fra samme tabel

  2. GROUP BY returnerer den første post

  3. Hvordan kan indekser kontrolleres, hvis de findes i en Laravel-migrering?

  4. V$SQL_SHARED_CURSOR TOP_LEVEL_RPI_CURSOR