0

クエリがあり、php で書きたいのですが、エラーが表示されます。

私のクエリは以下のようなものです:

$exe1 = mysql_query("
SELECT
  GROUP_CONCAT(DISTINCT
    CONCAT(
      'SUM(CASE WHEN `size_name` = ''',
      `size_name`,
      ''' THEN Quantity ELSE 0 END) AS `',
      `size_name`, '`'
    )
  ) INTO @sql
FROM Size;

SET @sql = CONCAT('SELECT st.Style , ', @sql, '
                  FROM Size s
                  JOIN Style st ON s.style_id = st.id
                   GROUP BY st.Style 
                  ');

PREPARE stmt FROM @sql;
EXECUTE stmt;") or die(mysql_error());

しかし、そのメッセージを示しています

SQL 構文にエラーがあります。MySQL サーバーのバージョンに対応するマニュアルを参照して、12 行目の 'SET @sql = CONCAT('SELECT st.Style , ', @sql, ' FROM Size s ' 付近で使用する正しい構文を確認してください。

このエラーを解決する方法がわかりません。誰でもこの問題を解決するのを手伝ってもらえますか?

4

2 に答える 2

0

問題を確認するには、結果のクエリを印刷する必要があります@sql

あなたの場合、最後の引数の後に余分なコンマがあるようです。行を変更してみてください:

SET @sql = CONCAT('SELECT st.Style , ', @sql, '
                  FROM Size s
                  JOIN Style st ON s.style_id = st.id
                   GROUP BY st.Style 
                  ');

に:

SET @sql = CONCAT('SELECT st.Style , ', @sql'
                  FROM Size s
                  JOIN Style st ON s.style_id = st.id
                   GROUP BY st.Style 
                  ');
于 2013-07-03T11:18:23.110 に答える
0

mysql_query は複数のクエリをサポートしていません。

http://php.net/manual/en/function.mysql-query.php

mysql_* 関数は廃止され、削除されます。mysqli_* 関数または PDO を使用することをお勧めします。

于 2013-07-03T11:23:32.173 に答える