Sử dụng THÍCH
Một dòng như tìm kiếm:
WHERE
' ' + [TextValue] + ' ' LIKE '%[.,;:() ]Search[.,;:() ]%'
/* [] contains list of allowable characters, adding spaces around
[TextValue] removes need to have multiple OR [TextValue] LIKE */
Nếu không có phần đệm, bạn sẽ cần xử lý cụ thể chuỗi xuất hiện ở đầu / cuối chuỗi:
WHERE
[TextValue] LIKE '%Search%' --middle
OR
[TextValue] LIKE 'Search%' --start
OR
[TextValue] LIKE '%Search' --end
Sử dụng FULLTEXT INDEX
Edit2, cho toàn bộ văn bản thuần túy
CREATE FULLTEXT INDEX
trên trạng thái MSDN cho tùy chọn AUTO (mặc định)
Mặc dù các thay đổi được lan truyền tự động, những thay đổi này có thể không được phản ánh ngay lập tức trong chỉ mục toàn văn.
Vì vậy, nó có thể không cho kết quả chính xác. Nhưng sau đó vài giây nó sẽ.
Ngoài ra, với tối đa một vài hàng 10k, nó sẽ thực hiện đầy đủ: nó chia tỷ lệ O (n). Tôi sử dụng THÍCH trên một bảng có khoảng 25 nghìn hàng nhưng người dùng biết rằng nó sẽ hoạt động kém nếu họ tìm kiếm theo cách này (trên trang "nâng cao"). Tôi có được sự đánh đổi bằng cách quản lý một chỉ mục toàn văn
Tìm kiếm toàn văn không phải là giải pháp chính xác, đó là một lựa chọn
Lưu ý: Kinh nghiệm đã cho tôi thấy rằng lập chỉ mục FullText trong SQL Server có ý nghĩa hiệu suất nghiêm trọng, nghĩa là: Chỉ thực hiện nếu bạn thực sự cần và bạn biết bạn đang làm gì! (@Andrew Bickerton)