私は行からピボット列を作成しようとしていますが、PHPでいくつかの問題があります。私は、mysqlのコンソールで私のクエリを実行すると、非常にうまく動作し、必要な値を返します。しかし、私はPHPでそれを実行すると、mysqlの構文エラーを返します。私は本当の問題が何であるか把握することができませんでした。エラーメッセージを受信 クエリPHP/CodeIgniterのため PHPの行から動的なピボット列を作成する
SET @sql = NULL;
SELECT
GROUP_CONCAT(DISTINCT
CONCAT(
'sum(case when Ref_Month = ''',
Ref_Month,
''' then Total_Income end) AS ''',
Ref_Month, ''''
)
) INTO @sql
FROM mytable;
SET @sql = CONCAT('SELECT Tone_Name, ', @sql, ' FROM mytable WHERE Ref_Year in (2015) GROUP BY Tone_Name limit 10');
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
それぞれ普通のMySQLの両方およびPHP用蛇腹である
$query = $this->db->query("SET @sql = NULL;SELECT GROUP_CONCAT(DISTINCT CONCAT('sum(case when Ref_Month = ''', Ref_Month, ''' then Total_Income end) AS ''', Ref_Month, '''')) INTO @sql FROM mytable; SET @sql = CONCAT('SELECT Tone_Name, ', @sql, ' FROM mytable WHERE Ref_Year in (2015) GROUP BY Tone_Name limit 10'); PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;");
であった:
データベース・エラーはエラー番号を発生しました。 1064 Erreur de syntaxe pr 's de' SELECT GROUP_CONCAT(DISTINCT CONCAT( '合計(Ref_Month =' ''、Ref_Month、 '' ligne 1の場合)
誰か助けてください。また、フロントエンド用のHTML/PHPでそのような列と行を表示する方法も知りたい。
ありがとうございました。
Plsは私たちとMySQLの構文エラーを共有しています! – Shadow
こんにちは@Anant、明らかにあなたを取得していません。私の質問はあなたが最初に投稿したようなものです。おかげ – user1915536
は、データベースエラーが エラー番号発生しました:1064 Erreurデsyntaxe PRAS・デ・ 'SELECT GROUP_CONCAT(DISTINCT CONCAT(' 合計(ケース際Ref_Month = ''」、Ref_Month、 '' ア・ラ・LIGNE 1 (ここにあります ファイル名:C:\ wamp \ www \ crbt \ system \ database \ DB_driver.php 行番号:330 – user1915536