Đổi câu lệnh trong MySQL sang câu lệnh trong laravel

Mình đang thực hiện chức năng tìm kiếm. Nhưng bình thường mình search “kem đánh răng” bằng cách sử dụng lệnh LIKE '%kem đánh răng%' thì nó ra chính xác những sản phẩm có từ “kem đánh răng” như thế này:


Nhưng khi mình gõ không dấu “kem danh rang” thì kết quả lại trống rỗng. Mình định sử dụng FTS (Full Text Search) để tìm kiếm. Trong phần này người ta bảo chỉnh trong my.cnf để mở rộng từ tìm kiếm. Chứ bình thường mysql mặc định tìm kiếm từ 4 từ trở lên. File my.cnf thì có thể chỉnh được trong localhost nhưng khi úp lên thì hk úp được file my.cnf trên domain. Nên mình đã tìm thử và vô tình phát hiện ra cái tab search trên MySQL. Giao diện nó như thế này: (Đây là MySQL trên localhost)

Mình nhập từ “kem danh rang”, chọn tìm ít nhất 1 trong các từ, chọn tên bảng và cột của nó thì nó xuất ra dữ liệu như thế này:

Khi nhấn duyệt, nó sẽ hiện ra bảng kết quả như thế này:

Bây giờ để ý tới câu lệnh của nó:

SELECT * FROM sieuthibinhdinh.products
WHERE (CONVERT(name USING utf8) LIKE '%kem%')
OR (CONVERT(name USING utf8) LIKE '%danh%')
OR (CONVERT(name USING utf8) LIKE '%rang%')
ORDER BY id DESC

Làm thế nào để chuyển câu này vào trong Eloquent Laravel (về like thì biết ùi nhưng cái convert(name USING utf8) kia kìa nó chuyển như thế nào ạ? Mình cám ơn nhiều :slight_smile:

1 Like

viết 1 hàm chuyển từ có dấu thành không dấu thôi :smiley:

Trong trường name là từ có dấu mà bác :frowning:

Chả lẽ laravel ko sài đc rawsql query à bạn

https://laravel.com/docs/5.8/database#running-queries

2 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?