Alih-alih menggunakan IN()
, akan menggunakan FIND_IN_SET()
menjadi pilihan juga?
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
Berikut adalah contoh lengkap berdasarkan contoh masalah dalam pertanyaan, dikonfirmasikan sebagaimana diuji oleh penanya dalam pengeditan sebelumnya untuk pertanyaan:
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 |
+------+