Tôi có bảng Sản phẩm trong cơ sở dữ liệu SQL Server và tôi phải gỡ rối thủ tục được lưu trữ cũ sử dụng lập chỉ mục Toàn văn. Vì mục đích của chúng tôi ở đây, hãy giả sử rằng bảng Sản phẩm có hai ID trường, Từ khóa. Và trường Từ khóa được điền với các mục sau:Vấn đề SQL: Sử dụng CONTAINS() không hoạt động, nhưng LIKE hoạt động tốt
ROLAND SA-300 Roland SA-300 Đây là Roland-trong điều kiện MINT!
Khi tôi chạy các tuyên bố sau, tôi có thể lấy lại kỷ lục:
SELECT * FROM Products WHERE Keywords LIKE '%SA-300%'
Tuy nhiên, khi tôi chạy bất kỳ những điều khoản sau đây tôi nhận được không có kết quả:
SELECT * FROM Products WHERE CONTAINS(Keywords, ' SA-300 ')
SELECT * FROM Products WHERE CONTAINS(Keywords, 'SA-300')
SELECT * FROM Products WHERE CONTAINS(Keywords, '"SA-300"')
SELECT * FROM Products WHERE CONTAINS(Keywords, '"*SA-300*"')
Nhưng tôi biết rằng hàm CONTAINS() đang hoạt động vì tôi nhận được kết quả khi tôi chạy bất kỳ kết quả nào sau đây:
SELECT * FROM Products WHERE CONTAINS(Keywords, ' Roland ')
SELECT * FROM Products WHERE CONTAINS(Keywords, 'Roland')
SELECT * FROM Products WHERE CONTAINS(Keywords, '"Roland"')
SELECT * FROM Products WHERE CONTAINS(Keywords, '"*Roland*"')
SELECT * FROM Products WHERE CONTAINS(Keywords, 'Roland')
Tôi cần tìm ra lý do tại sao hàm CONTAINS() không hoạt động trên thuật ngữ 'SA-300'. Tôi mới vào chỉ mục toàn văn, vì vậy mọi trợ giúp đều được đánh giá cao.
Không có đầu mối, nhưng bạn đã kiểm tra xem chỉ mục hiện có chưa? – MichaelGG