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

MySQL стойности на разделени колони за използване в подзаявка?

Не е добра идея да съхранявате данните по този начин.

Първата идея, която ми идва в главата е:http://sqlfiddle.com/#!2/ 1dd77/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

РЕДАКТИРАНЕ 1

Подреден вариант: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. Въведение в SQL командите

  2. Как да настроите обект (доктрина) за изглед на база данни в Symfony 2

  3. грешка на сървъра на asp „Не може да се зареди файл или сборка“, но монтажът определено е там.

  4. избягвайте сортирането по ключовата дума MYSQL IN

  5. Как да разбера колко реда връща една Perl DBI заявка?