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

Грешка в оператора GROUP_CONCAT на mysql

Ако погледнете кода си (и увеличите):

SET @sql = CONCAT('SELECT id_c, students,', @sql, '
        [..]
                CONCAT(B.`code`, '_', A.id_a) col,
                CONCAT(D.value_m, ',', D.value_n) val
        [..]
        GROUP BY id_c'
    );

ще видите, че _ и , са черни, докато трябва да са червени като част от низа. Това означава, че вашият низ е "счупен" там. Така че трябва да избегнете единичните кавички с '' :

SET @sql = CONCAT('SELECT id_c, students,', @sql, '
        [..]
                CONCAT(B.`code`, ''_'', A.id_a) col,
                CONCAT(D.value_m, '','', D.value_n) val
        [..]
        GROUP BY id_c'
    );

Или използвайте двойни кавички за низове, които съдържат единични кавички:

SET @sql = CONCAT('SELECT id_c, students,', @sql, "
        [..]
                CONCAT(B.`code`, '_', A.id_a) col,
                CONCAT(D.value_m, ',', D.value_n) val
        [..]
        GROUP BY id_c"
    );

Сега целият низ е червен, както трябва да бъде :-)

http://rextester.com/SLMU41976




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ГРЕШКА 1045 (28000):Достъпът е отказан за потребител 'root'@'localhost' (използвайки парола:НЕ)

  2. най-добрият урок за използване на структурата на обекта, POCO и MySQL

  3. MySQL:Изберете редове с повече от едно срещане

  4. SQL в клауза с нула до много параметри

  5. Филтриране между две дати MYSQL