Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Sử dụng SQL để xác định số liệu thống kê về số lượng từ của một trường văn bản

Khả năng xử lý văn bản của MySQL không đủ tốt cho những gì bạn muốn. Một chức năng được lưu trữ là một tùy chọn, nhưng có thể sẽ chậm. Đặt cược tốt nhất của bạn để xử lý dữ liệu trong MySQL là thêm chức năng do người dùng xác định . Nếu bạn vẫn định xây dựng phiên bản MySQL mới hơn, bạn cũng có thể thêm chức năng gốc .

Cách "đúng" là xử lý dữ liệu bên ngoài DB vì DB là để lưu trữ chứ không phải để xử lý và bất kỳ quá trình xử lý nặng nào có thể gây quá nhiều tải cho DBMS. Ngoài ra, tính toán số lượng từ bên ngoài MySQL giúp thay đổi định nghĩa về những gì được tính là một từ dễ dàng hơn. Làm thế nào về việc lưu trữ số lượng từ trong DB và cập nhật nó khi tài liệu được thay đổi?

Ví dụ về hàm được lưu trữ:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Giới thiệu về chuyển đổi dự phòng cho MySQL Replication - Blog 101

  2. Hệ thống cấu hình không thể khởi tạo

  3. Ví dụ YEAR () - MySQL

  4. PHP để lưu trữ hình ảnh trong MySQL hay không?

  5. Làm cách nào để biết bộ ký tự của cơ sở dữ liệu / bảng / cột MySQL là gì?