sql >> Database teknologi >  >> RDS >> Mysql

Opdel en MYSQL-streng fra GROUP_CONCAT i en (array, like, udtryk, liste), som IN () kan forstå

I stedet for at bruge IN() , ville bruge FIND_IN_SET() også være en mulighed?

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

Her er et fuldstændigt eksempel baseret på eksempelproblemet i spørgsmålet, bekræftet som testet af spørgeren i en tidligere redigering af spørgsmålet:

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. Kan ikke skrive data til transporten. Vs2017 ASP.net kernestillads (MSSQL WINDOW 10)

  2. Overvåg SQL-database via SP_WhoIsActive eller FogLight | SQL Server Performance Fejlfinding -1

  3. hvordan man kalder orakelfunktion i mybatis

  4. Enkelte eller flere databaser