Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да получите честотата на дума в ред, използвайки пълен текст на mysql

Създайте дефинирана от потребителя функция като тази

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 ;

След това можете да използвате това във вашата заявка, както следва

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

Надявам се да помогне




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL избира DATETIME подобно до минутата

  2. Laravel динамично падащо меню държава и щат

  3. Редът по подразбиране на MySQL зависи от WHERE

  4. Mysql:Изберете редове от таблица, които не са в друга

  5. Избиране на всички полета с изключение само на едно поле в mysql