Hai tùy chọn:
-
Sử dụng
LIKE
từ khóa, cùng với các dấu phần trăm trong chuỗiselect * from table where field like '%a%' or field like '%b%'.
(lưu ý:Nếu chuỗi tìm kiếm của bạn chứa các dấu phần trăm, bạn cần phải thoát khỏi chúng)
-
Nếu bạn đang tìm kiếm sự kết hợp phức tạp của nhiều chuỗi hơn bạn đã chỉ định trong ví dụ của mình, bạn có thể biểu thức chính quy (regex):
Xem hướng dẫn sử dụng MySQL để biết thêm về cách sử dụng chúng: http:/ /dev.mysql.com/doc/refman/5.1/en/regexp.html
Trong số này, sử dụng LIKE
là giải pháp thông thường nhất - đó là SQL tiêu chuẩn và được sử dụng phổ biến. Regex ít được sử dụng hơn nhưng mạnh hơn nhiều.
Lưu ý rằng bất kỳ tùy chọn nào bạn sử dụng, bạn cần phải biết về các tác động có thể có về hiệu suất. Tìm kiếm các chuỗi con như thế này sẽ có nghĩa là truy vấn sẽ phải quét toàn bộ bảng. Nếu bạn có một bảng lớn, điều này có thể tạo ra một truy vấn rất chậm và việc lập chỉ mục sẽ không giúp ích được gì.
Nếu đây là vấn đề đối với bạn và bạn sẽ cần phải tìm kiếm lặp đi lặp lại những thứ giống nhau, bạn có thể muốn làm điều gì đó như thêm trường cờ vào bảng để chỉ định rằng trường chuỗi chứa con liên quan dây. Nếu bạn luôn cập nhật trường cờ này khi bạn chèn bản ghi cập nhật, bạn có thể chỉ cần truy vấn cờ khi bạn muốn tìm kiếm. Điều này có thể được lập chỉ mục và sẽ làm cho truy vấn của bạn nhanh hơn nhiều. Việc đó có xứng đáng hay không là tùy thuộc vào bạn, điều đó sẽ phụ thuộc vào mức độ tồi tệ của hiệu suất khi sử dụng LIKE
.