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

Wartości kolumn dzielonych MySQL do użycia w podzapytaniu?

Przechowywanie danych w ten sposób nie jest dobrym pomysłem.

Pierwszy pomysł, który wpadł mi do głowy to:http://sqlfiddle.com/#!2/ 1d77/4

SELECT b.*, GROUP_CONCAT(a.name SEPARATOR ':')
FROM table2 as b
LEFT JOIN table1 as a
on b.var = a.id 
  OR  b.var regexp(CONCAT('^',a.id,':'))
  OR  b.var regexp(CONCAT(':',a.id,':'))
  OR  b.var regexp(CONCAT(':',a.id,'$'))
 GROUP BY b.id

EDYTUJ 1

Zamówiony wariant:http://sqlfiddle.com/#!2/1dd77/38

SELECT b.*, GROUP_CONCAT(a.name ORDER BY FIND_IN_SET(a.id, REPLACE(b.var,":",",")) SEPARATOR ':' )
FROM table2 as b
LEFT JOIN table1 as a
on b.var = a.id 
  OR  b.var regexp(CONCAT('^',a.id,':'))
  OR  b.var regexp(CONCAT(':',a.id,':'))
  OR  b.var regexp(CONCAT(':',a.id,'$'))
 GROUP BY b.id


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysqli_stmt::num_rows() zwraca błędną wartość

  2. Pokaż indeksy w tabeli MySQL

  3. Znalezienie przeciętnego SQL

  4. Nie udało się załadować klasy sterownika com.mysql.jdbc.Driver

  5. PDO::FETCH_ASSOC nie pobiera wszystkiego