Mysql
 sql >> база данни >  >> RDS >> Mysql

Разделете MYSQL низ от GROUP_CONCAT в (масив, като, израз, списък), който IN () може да разбере

Вместо да използвате IN() , ще използва FIND_IN_SET() дали също е опция?

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

Ето пълен пример, базиран на примерния проблем във въпроса, потвърден като тестван от питащия в по-ранна редакция на въпроса:

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. mysqldump:Не можа да се изпълни. Неизвестна таблица 'column_statistics' в information_schema

  2. PHP - проблем с вложената mysql_fetch_array() ме подлудява

  3. Как мога да изброя същите идентификационни данни с while цикъл в PHP?

  4. PHP Как да запишете данни от масив в mysql с помощта на laravel 5

  5. MySQL now() променя часовата зона