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

Đếm số lần xuất hiện ký tự cụ thể trong chuỗi MySQL

Công thức: LENGTH(chuoi) - LENGTH(REPLACE(chuoi, kyTu, '')) cho ra số lần ký tự xuất hiện.

Ví dụ đếm dấu '?'

Tạo bảng:

mysql> create table DemoTable ( Value varchar(200) ); 
Query OK, 0 rows affected (0.54 sec)
mysql> insert into DemoTable values('?1234?6789?5656?324?'); 
Query OK, 1 row affected (0.17 sec)

Chuỗi: '?1234?6789?5656?324?' (có 5 dấu '?')

Truy vấn đếm

mysql> SELECT LENGTH(Value) - LENGTH(REPLACE(Value,'?','')) from DemoTable;
+-----------------------------------------------+
| LENGTH(Value) - LENGTH(REPLACE(Value,'?','')) |
+-----------------------------------------------+
| 5                                             |
+-----------------------------------------------+

Giải thích:

  • LENGTH(Value) = độ dài gốc (20)
  • REPLACE(Value,'?','') = chuỗi sau khi xóa tất cả '?' → '123467895656324' (độ dài 15)
  • Hiệu = 20 - 15 = 5 lần

Lưu ý: LENGTH đếm byte. Với ký tự multi-byte (UTF-8 tiếng Việt), dùng CHAR_LENGTH để đếm số ký tự thực.