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.