Để sử dụng Giống như với% hợp phần bạn cũng có thể làm điều này: column like concat('%', :something, '%')
(nói cách khác, sử dụng các dấu hiệu% không rõ ràng là không được người dùng nhập vào) với tham số có tên :something
.
Edit: Một cú pháp thay thế mà tôi đã tìm thấy là sử dụng toán tử nối: ||, vì vậy nó sẽ trở nên đơn giản: where column like '%' || :something || '%' etc
@ bobince đề cập here rằng:
difficulty xuất hiện khi bạn muốn cho phép ký tự %
hoặc _
theo nghĩa đen trong chuỗi tìm kiếm mà không cần nó hoạt động như một ký tự đại diện .
Vì vậy, đó là điều khác cần lưu ý khi kết hợp như và tham số hóa.
Đó không phải là luật Murphy;) –
@ Andrew: những gì nếu nhiều 'like' Được sử dụng ? mảng thực hiện như thế nào sẽ thực hiện theo thứ tự? – logan
cảm ơn. đã có vấn đề tương tự với csharp + Mysql + ODBC sử dụng như nó sẽ không trả về bất kỳ hàng nào bằng cách sử dụng "select * from table where column like '%?%';" nhưng nếu tôi làm như bạn đã làm "chọn * từ bảng nơi cột như thế nào?" và đặt chuỗi tham số như vậy: string frag = $ "% {searchFragment}%"; sau đó sử dụng frag cho giá trị tham số. Weird – sdjuan