Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Đếm số dấu phẩy trong giá trị cột MySQL

Để đếm số lần xuất hiện của một ký tự (ví dụ: dấu phẩy ',') trong chuỗi, dùng công thức: độ dài chuỗi gốc - độ dài chuỗi sau khi xóa ký tự đó.

Công thức

SELECT LENGTH(cot) - LENGTH(REPLACE(cot, ',', '')) AS so_dau_phay
FROM ten_bang;
  • LENGTH(cot): độ dài byte của chuỗi gốc.
  • REPLACE(cot, ',', ''): chuỗi sau khi xóa tất cả dấu phẩy.
  • Hiệu số = số dấu phẩy (vì mỗi dấu phẩy 1 byte).

Ví dụ minh họa

mysql> CREATE TABLE DemoTable1510 (Value VARCHAR(50));
mysql> INSERT INTO DemoTable1510 VALUES ('20,35'), ('45,67,89'), ('90,97,101,190');

mysql> SELECT Value,
    -> LENGTH(Value) - LENGTH(REPLACE(Value, ',', '')) AS NumberOfComma
    -> FROM DemoTable1510;

Kết quả:

+---------------+---------------+
| Value         | NumberOfComma |
+---------------+---------------+
| 20,35         |             1 |
| 45,67,89      |             2 |
| 90,97,101,190 |             3 |
+---------------+---------------+

Mở rộng

  • Đếm ký tự đa byte (UTF-8): dùng CHAR_LENGTH() thay LENGTH().
  • Đếm chuỗi con dài > 1 ký tự: (LENGTH(cot) - LENGTH(REPLACE(cot, 'chuoi_con', ''))) / LENGTH('chuoi_con').
  • MySQL 8.0+: dùng REGEXP_COUNT(cot, ',') (hiệu năng tốt hơn trên chuỗi lớn).

Ứng dụng

  • Kiểm tra định dạng CSV: số cột = số dấu phẩy + 1.
  • Phân tích dữ liệu thô: đếm phân cách trong cột text.
  • Validate: từ chối hàng có số dấu phẩy không đúng quy chuẩn.