Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Pisahkan string MYSQL dari GROUP_CONCAT menjadi ( larik, seperti, ekspresi, daftar) yang IN () dapat pahami

Alih-alih menggunakan IN() , akan menggunakan FIND_IN_SET() menjadi pilihan juga?

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

Berikut adalah contoh lengkap berdasarkan contoh masalah dalam pertanyaan, dikonfirmasikan sebagaimana diuji oleh penanya dalam pengeditan sebelumnya untuk pertanyaan:

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. Python mysqldb di Mac OSX 10.6 tidak berfungsi

  2. Karakter Ruby dan MySQL UTF-8

  3. MySQL memperbarui baris yang sama oleh banyak pengguna seperti penghitung

  4. ekstrak mysql tahun dari format tanggal

  5. Replikasi satu tabel