sql >> データベース >  >> RDS >> Mysql

GROUP_CONCATmysqlステートメントエラー

    コードを見る(そしてズームインする)場合:

    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. 大規模なPHPアレイとMySQLデータベース?

    2. 追加された複数のエンティティは、データベースシードに同じ主キーを持っている可能性があります

    3. 移動平均-MySQL

    4. 複数のフィールドによるMySQLの一意のインデックス