sql >> Databáze >  >> RDS >> Mysql

Rozdělte řetězec MYSQL z GROUP_CONCAT do ( pole, jako, výraz, seznam), kterému IN () rozumí

Místo použití IN() , by pomocí FIND_IN_SET() být také možností?

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

Zde je úplný příklad založený na příkladu problému v otázce, potvrzený jako testovaný tazatelem v dřívější úpravě otázky:

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 Trigger nastavte hodnotu data a času pomocí příkazu case

  2. Porovnání Null s jinou hodnotou v MySQL Trigger

  3. Verze databáze / Řízení změn pro data není schéma?

  4. Jaký je dobrý způsob, jak zapouzdřit přístup k datům pomocí PHP/MySQL?