Thay vì sử dụng IN()
, sẽ sử dụng FIND_IN_SET()
cũng là một lựa chọn?
http://dev.mysql .com / doc / refman / 5.0 / en / string-functions.html # function_find-in-set
mysql> SELECT FIND_IN_SET('b','a,b,c,d');
-> 2
Dưới đây là một ví dụ đầy đủ dựa trên vấn đề ví dụ trong câu hỏi, được xác nhận là đã được người hỏi kiểm tra trong bản chỉnh sửa trước đó cho câu hỏi:
SELECT name FROM person LEFT JOIN tag ON person.id = tag.person_id GROUP BY person.id
HAVING ( FIND_IN_SET(1, GROUP_CONCAT(tag.tag_id)) ) AND ( FIND_IN_SET(2, GROUP_CONCAT(tag.tag_id)) );
+------+
| name |
+------+
| Bob |
+------+