sql >> Databasteknik >  >> RDS >> Mysql

Dela en MYSQL-sträng från GROUP_CONCAT till en ( array, like, expression, list) som IN () kan förstå

Istället för att använda IN() , skulle använda FIND_IN_SET() vara ett alternativ också?

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

Här är ett fullständigt exempel baserat på exempelproblemet i frågan, bekräftat som testat av frågeställaren i en tidigare redigering av frågan:

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


  1. Mysql-installer visar fel:Minnet kunde inte skrivas

  2. tsector stöder bara engelska?

  3. PostgreSQL-säkerhetskopieringsmetodfunktioner i AWS S3

  4. Använder "distinkt" i en MySQL-fråga