Asked Aug 24th, 2023 4:58 a.m. 264 0 1
  • 264 0 1
+1

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

Share
  • 264 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 ANSWERS


Answered Aug 24th, 2023 6:34 a.m.
Accepted
+2

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

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

Share
Avatar trinh.nx @trinh.nx
Sep 11th, 2023 6:49 a.m.

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

0
| Reply
Share
Viblo
Let's register a Viblo Account to get more interesting posts.