Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Teilen Sie eine MYSQL-Zeichenfolge von GROUP_CONCAT in ein ( Array, Like, Ausdruck, Liste) auf, das IN () verstehen kann

Anstatt IN() zu verwenden , würde FIND_IN_SET() verwenden auch eine Option sein?

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

Hier ist ein vollständiges Beispiel, das auf dem Beispielproblem in der Frage basiert und vom Fragesteller in einer früheren Bearbeitung der Frage als getestet bestätigt wurde:

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  |
+------+