Yêu cầu thg 8 24, 2023 4:58 SA 292 0 1
  • 292 0 1
+1

Database không phân biệt được dấu tiếng Việt

Chia sẻ
  • 292 0 1

Xin chào, mình đang có vấn đề là khi query SQL thì database không phân biệt được dấu của chữ. Ví dụ mình dùng command này:

SELECT MiddleName, LastName FROM `namesTable` WHERE LastName = 'Bình'

thì kết quả sẽ ra luôn khi LastName là "Binh" và LastName là "Bính".

còn khi query

SELECT MiddleName, LastName FROM `namesTable` WHERE LastName = 'Bình' AND LastName != 'Binh'

thì lại ra tệp rỗng.

============ thông số của web server là

  • cPanel Version 110.0 (build 10)
  • MySQL Version 10.3.39-MariaDB-cll-lve
  • Apache Version 2.4.57
  • Perl Version 5.16.3
  • Kernel Version 3.10.0-962.3.2.lve1.5.68.el7.x86_64

Database của mình có setting là:

  • InnoDB.
  • bảng mã: utf8mb4_vietnamese_ci

1 CÂU TRẢ LỜI


Đã trả lời thg 8 24, 2023 6:34 SA
Đã được chấp nhận
+2

đã giải quyết được rồi nhé.

thêm phần COLLATE utf8mb4_bin vào nữa là xong

Chia sẻ
Avatar trinh.nx @trinh.nx
thg 9 11, 2023 6:49 SA

Lý do do collate utf8mb4_vietnamese_ci -> đó là case_insensitive nên bạn gặp trường hợp như trên.

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí