6

インストールしたバージョンの MySQL でこのチュートリアルに従っていますが、エラーが発生します。

SET @sql = NULL;
SELECT
  GROUP_CONCAT(DISTINCT
    CONCAT(
      'MAX(IF(property_name = ''',
      property_name,
      ''', value, NULL)) AS ',
      property_name
    )
  ) INTO @sql
FROM
  properties;
SET @sql = CONCAT('SELECT item_id, ', @sql, ' FROM properties GROUP BY item_id');

PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

phpMyAdmin の SQL エディターに貼り付けています。

私はその提案に従いました。エラーは表示されませんが、結果は次のとおりです。

SELECT item_id
,MAX(IF(property_name = 'color', value, NULL)) AS color
,MAX(IF(property_name = 'size', value, NULL)) AS size
,MAX(IF(property_name = 'weight', value, NULL)) AS weight 
FROM properties GROUP BY item_id
4

3 に答える 3

3

DEALLOCATE PREPARE stmt;クエリが実行されるまで、クエリからを削除する必要があります。

DEALLOCATEステートメントを実行する前にキャンセルします。

于 2017-06-14T23:02:49.880 に答える
2

これをMySQL Workbenchで試してください。phpMyAdmin で同じ問題が発生し、Workbench で試したところ正常に動作しました。

于 2016-06-23T06:26:23.640 に答える