sql >> Databáze >  >> RDS >> Mysql

Použití SQL k určení statistiky počtu slov v textovém poli

Možnosti zpracování textu MySQL nejsou dost dobré pro to, co chcete. Uložená funkce je volitelná, ale pravděpodobně bude pomalá. Nejlepším řešením pro zpracování dat v MySQL je přidat uživatelsky definovaná funkce . Pokud se přesto chystáte vytvořit novější verzi MySQL, můžete také přidat nativní funkce .

„Správným“ způsobem je zpracovávat data mimo DB, protože DB jsou pro ukládání, nikoli pro zpracování, a jakékoli náročné zpracování by mohlo DBMS příliš zatížit. Výpočet počtu slov mimo MySQL navíc usnadňuje změnu definice toho, co se počítá jako slovo. Co takhle uložit počet slov do DB a aktualizovat ho, když se dokument změní?

Příklad uložené funkce:

DELIMITER $$
CREATE FUNCTION wordcount(str LONGTEXT)
       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);
    SET idx = 1;
    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 ;


  1. Připojení Oracle k SQL Serveru z Windows

  2. Propojení Androidu s MS SQL SERVER 2008

  3. Aktualizujte hodnotu primárního klíče pomocí entity framework

  4. Jak převést seznam oddělený čárkami na řádky na serveru SQL Server