Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Podziel ciąg MYSQL z GROUP_CONCAT na (tablicę, np. wyrażenie, listę), którą IN() może zrozumieć

Zamiast używać IN() , użyje FIND_IN_SET() być też opcją?

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

Oto pełny przykład oparty na przykładowym problemie w pytaniu, potwierdzony jako testowany przez pytającego we wcześniejszej edycji pytania:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL - klauzula WHERE z JOIN

  2. Wywołaj funkcje zagnieżdżone/wewnętrzne mysql w querydsl

  3. PHP/MYSQL zezwala na tylko jeden głos na członka?

  4. Błąd:R nie może połączyć się z MySQL

  5. Jak przechowywać sformatowany tekst w tabeli MySQL?