Tìm mysql trong chuỗi
Trong bài viết này, tôi sẽ đề cập đến vấn đề hướng dẫn tìm kiếm tìm kiếm có dấu trên MySQL bằng cách sử dụng CONVERT(value, BINARY). Do đó search 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 ở bên dưới Show Vấn đềKhi tôi làm dự án cho khách hàng, và đương nhiên trang web nào cũng có chức năng cần thiết để tìm kiếm. Với một số trang web như tin tức, thương mại điện tử đôi khi chúng ta không đề cập đến việc tìm kiếm kết quả phải chính xác và cụ thể nhất. Ví dụ. User into trang blog itphutran. com và tìm kiếm với từ khóa “học java” thì kết quả tìm kiếm được hiển thị như sau Như vậy khi tìm kiếm bên 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 . Đơn giản vì chúng ta thường sử dụng câu lệnh SQL như sau CHỌN * TỪ bảng WHERE cột LIKE ‘%học java%’ Do đó, công việc tìm kiếm sẽ thu được kết quả tương tự chứ không phải chính xác bắt buộc phải có cụm từ “học java” Nhưng với một số trang web như quản lý tín hiệu duy nhất của một trường đại học, hay quản lý danh sách sinh viên giả tạo 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 quả Một ví dụ như sau
Tôi có bảng listv với 2 cột sv_id và tên. 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 tìm kiếm thông thường khi không sử dụng CONVERT(value, BINARY)CHỌN * TỪ lissv trong đó tên THÍCH “%Anh” Như vậy kết quả tìm kiếm.
Qua đó, chúng tôi thấy rằng những thí sinh có tên như Ánh, Cảnh vì có từ “Anh” nên kết quả cũng được search và hiển thị. Nhưng trường hợp này chúng ta không mong kết quả như trên, chính xác phải là sinh viên có tên “Nguyễn Anh”. Vì vậy, lúc này các bạn sẽ sử dụng cách để chuyển từ chuỗi sang chuỗi nhị phân, 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ề định dạng nhị phân thì công việc tìm kiếm sẽ chính xác Tìm kiếm khi sử dụng CONVERT(value, BINARY)Vì vậy câu lệnh khi chuyển đổi từ chuỗi sang BINARY trong MySQL là CHUYỂN ĐỔI ('chuỗi', BINARY)) Tương ứng câu hỏi truy vấn tìm kiếm với ví dụ trên CHỌN * TỪ lissv trong đó tên 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ả. Qua đó , kết quả như mong đợi #Tổng kếtMột số trường hợp tìm kiếm chúng ta không cần sử dụng cách chuyển đổi từ chuỗi 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ể
|