Hướng dẫn tìm kiếm có dấu trên MySQL sử dụng CONVERT(value, BINARY)

Hướng dẫn tìm kiếm có dấu trên MySQL sử dụng CONVERT(value, BINARY)

Trong bài viết này tôi sẽ đề cập đến vấn đề hướng dẫn tìm kiếm có dấu trên MySQL sử dụng CONVERT(value, BINARY). Vậy tìm kiếm có dấu trên MySQL có gì để tìm hiểu trong bài viết này thì hay xem vấn đề tôi đặt ra ở dưới.

Vấn đề

Khi tôi làm dự án cho khách hàng, và đương nhiên website nào cũng có chức năng cần thiết đó tìm kiếm.Với một số website như tin tức, thương mại điện tử đôi khi chúng ta không để ý đến việc tìm kiếm kết quả phải chính xác và cụ thể nhất.Ví dụ :Người dùng vào trang blog itphutran.com và search với từ khóa “học java” thì kết quả tìm kiếm được hiển thị như sau:

Hướng dẫn tìm kiếm có dấu trên MySQL sử dụng CONVERT(value, BINARY)

Như vậy khi tìm kiếm ngoài kết quả tìm kiếm với cụm từ “học java” thì nếu trong bài viết của tôi có những cụm từ như “hoc” ,”hóc”,…vv tóm lại là có từ hoc thì nó sẽ được tìm kiếm và hiển thị kết quả.Đơn giản vì chúng ta thường sử dụng câu lệnh SQL như sau :

SELECT * FROM table WHERE column LIKE ‘%học java%’

Vậy nên việc tìm kiếm sẽ được những kết quả tương tự chứ không chính xác bắt buộc phải có cụm từ “học java”.

Nhưng với một số website như quản lý tín chỉ của một trường đại học, hay quản lý danh sách sinh viên chẳng hạn thì sẽ tìm kiếm một cách chính xác sinh viên đó chứ không nên tìm kiếm những sinh viên liên quan để nâng cao hiệu suất tìm kiếm và không mất nhiều chi phí thời gian.

Một ví dụ như sau:

 

Hướng dẫn tìm kiếm có dấu trên MySQL sử dụng CONVERT(value, BINARY)

 

Tôi có bảng listsv với 2 cột sv_id và name. Trong trường hợp này tôi muốn tìm kiếm những sinh viên có tên “Anh”

Cách thông thường tìm kiếm khi không sử dụng  CONVERT(value, BINARY)

SELECT * FROM lissv where name LIKE “%Anh”

Như vậy kết quả tìm kiếm: 

 

Hướng dẫn tìm kiếm có dấu trên MySQL sử dụng CONVERT(value, BINARY)

 

Qua đó, chúng ta thấy rằng những sinh viên có tên như Ánh, Cảnh vì có từ “Anh” nên kết quả cũng được tìm kiếm và hiển thị. Nhưng trường hợp này chúng ta không mong muốn kết quả như trên, chính xác phải là sinh viên có tên “Nguyễn Anh”. Vậy lúc này các bạn sẽ sử dụng cách để chuyển từ chuỗi string sang binary, mục đích chuyển từ chuỗi sang hệ nhị phân.

Ví dụ : Từ Anh chuyển sang hệ nhị phân có dạng như sau :

Anh => 01000001 01101110 01101000

Cảnh => 01000011 1111010100011 01101110 01101000

Qua đó khi chuyển về dạng binary thì việc tìm kiếm sẽ chính xác.

Tìm kiếm khi sử dụng  CONVERT(value, BINARY)

Vậy câu lệnh khi convert từ string sang BINARY trong MySQL là :

CONVERT(‘string’, BINARY))

Tương ứng câu lênh truy vấn tìm kiếm với ví dụ trên :

SELECT * FROM lissv where name LIKE CONCAT(‘%’, CONVERT(‘Anh’, BINARY))

Trong đó các bạn lưu ý chúng ta sử dụng hàm CONCAT để nối chuỗi trong MySQL.

Kết quả : 

Hướng dẫn tìm kiếm có dấu trên MySQL sử dụng CONVERT(value, BINARY)

Qua đó , kết quả như mong đợi.

#Tổng Kết

Một số trường hợp tìm kiếm chúng ta không cần sử dụng cách convert từ string sang BINARY sử dụng CONVERT(value, BINARY) nhưng nếu muốn tìm kiếm một cách chính xác thì bài hướng dẫn trên là một ví dụ cụ thể.

Cảm ơn các bạn đã đọc bài viết, nếu thấy hay hãy share để mọi người cùng đọc nhé.Tks you!

00

11 thoughts on “Hướng dẫn tìm kiếm có dấu trên MySQL sử dụng CONVERT(value, BINARY)”

  1. Aw, this was an incredibly good post. Taking the time and actual effort to produce a superb article… but what
    can I say… I put things off a whole lot and never seem to get anything done.

  2. Colorful flyers are more likely to get noticed also to leave their mark.
    Then when things are all finished you will need to get back on the printers to
    pick-up your order. You will need to furthermore determine what colors
    you’ll use for the brochure and to choose any artwork that will
    be used.

  3. Hi anh, Em có vấn đề tương tự muốn hỏi ạ. Bây giờ em muốn search ‘hoc java’ thay cho ‘học java’ thì mysql nó không tìm được kết quả cho ‘học java’ . Vậy cần làm thế nào để tìm kiếm không dấu mà được kết quả có dấu vậy ạ.

  4. I live a little ways away high are incredibly few houses so
    a good cool breeze is fairly constant and a fan is not usually required for cooling.
    Some versions claim that Bale Song as part of his two horses to win at
    Canterbury Chelmsford, after losing fascination with
    her, and he therefore felt cheerful mood; a variety version of
    this, Bale Song suddenly consider it wise to Some polo side of computer to travel as
    well as a day at Argentina, when he left, Chanel, and Kabo
    head to Paris (in this version, Bale Song symbolically sent a lemon for Chanel bags and when she opened the bag, when are broken inside the
    lemon. We also need the feel it and require them truly, which is the best way the wishes work out else they merely
    remain few words which were said but never meant anything. https://fofo100.xyz

  5. Hey this is kind of of off topic but I was wondering if blogs use
    WYSIWYG editors or if you have to manually code with HTML.
    I’m starting a blog soon but have no coding know-how so I wanted to get advice from someone with experience.
    Any help would be greatly appreciated!

  6. Right here is the perfect site for anyone who would like to understand this topic.

    You understand a whole lot its almost hard to argue with you
    (not that I actually would want to…HaHa). You certainly put a new spin on a subject that’s been discussed for ages.
    Excellent stuff, just great!

  7. If you are nearby or have a very person handling your place in the winter, recharge your
    systems at least once every month. Hence, it
    is necessary to purchase the replaceable attachments only from your best Automotive Parts Manufacturers to prevent further trouble.
    Since there is no carbon or hazardous gases’ emission issue with cycling, it can help keep your environment clean as well.

  8. Nice post. I was checking continuously this blog and I’m inspired!
    Very useful information particularly the last section :
    ) I deal with such information a lot. I was looking
    for this certain information for a very lengthy time.

    Thank you and best of luck.

Leave a Reply

Your email address will not be published. Required fields are marked *