Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

GROUP_CONCAT lỗi câu lệnh mysql

Nếu bạn nhìn vào mã của mình (và phóng to):

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'
    );

bạn sẽ thấy rằng _, có màu đen, trong khi chúng phải có màu đỏ như một phần của chuỗi. Điều đó có nghĩa là chuỗi của bạn bị "đứt" ở đó. Vì vậy, bạn cần thoát khỏi các dấu nháy đơn bằng '' :

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'
    );

Hoặc sử dụng dấu ngoặc kép cho các chuỗi chứa dấu ngoặc kép:

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"
    );

Bây giờ chuỗi hoàn chỉnh có màu đỏ như nó phải là :-)

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. DbUnit thử nghiệm Java MySQL

  2. Xóa các bản sao khỏi một bảng lớn

  3. Chia chuỗi được phân tách bằng dấu phẩy thành các hàng trong mysql

  4. Cách chuyển đổi truy vấn MYSQL thành truy vấn MSSQL

  5. Truy vấn SQL để truy xuất SUM trong các phạm vi DATE khác nhau