Điều này
...snip... ) LIKE '%' LOWER(:wildcard) '%' OR ...snip
là không chính xác. Bạn có một chuỗi ('%'
) theo sau là một lệnh gọi hàm (LOWER()
) theo sau là một chuỗi khác, và họ chỉ ngồi đó - không có logic kết nối, không nối, blah blah blah.
Nó phải là
... LIKE CONCAT('%', LOWER(:wildcard), '%') OR ...
Và theo mặc định, so sánh mysql KHÔNG phân biệt chữ hoa chữ thường, trừ khi bạn buộc binary
so sánh hoặc bạn đang sử dụng đối chiếu phân biệt chữ hoa chữ thường trên db / table của mình.