Tôi có một bảng có sử dụng một datatype SET cho một trong những lĩnh vực, và để kiểm tra xem trường có chứa một yếu tố cụ thể tôi sử dụngmysql ĐÂU SET datatype chứa mục
SELECT * FROM table WHERE myset LIKE %value%;
này hoạt động hầu hết thời gian, nhưng hai trong số các giá trị tiềm năng có cùng một từ, tức là một phần tử có thể có trong tập hợp là Poodle và một phần tử khác là Toy Poodle. Nếu tôi làm
SELECT * FROM table WHERE myset LIKE %Poodle%;
Nó trả về tất cả các hàng có Poodle hoặc Toy Poodle. Tôi muốn nó chỉ trả lại nếu trường có chứa Poodle. Nếu tôi xóa các ký tự đại diện thì nó sẽ chỉ trả lại các hàng có CHỈ Poodle. Vì vậy, về cơ bản, nếu bảng là:
id | myset
-------------------------
1 | "Poodle"
2 | "Toy Poodle"
3 | "Poodle","Toy Poodle"
4 | "Toy Poodle","Poodle"
Tôi cần một câu lệnh chọn sẽ trả về 1,3 và 4 nhưng không phải 2. Có thể thực hiện điều này không?
Không chắc chắn làm thế nào tôi bỏ qua điều đó ... cảm thấy một chút ngu ngốc bây giờ. Đó là nơi tôi nhận được thông tin để sử dụng LIKE% ...%, chỉ bằng cách nào đó đã bỏ lỡ phần FIND_IN_SET – awestover89
bây giờ tôi biết. vui mừng thêm một bộ kiến thức khác vào bộ nhớ cơ sở dữ liệu của tôi – reignsly