在MySQL中创建数据透视视图

时间:2017-03-18 16:35:12

标签: mysql view

我们有一个表格,我们在行中保存数据。例如

Id Property_Name Value
-----------------------------
1  Name            XYZ    
1  Age             22
1  Location        India

我想在列中转换这些行并创建一个视图,以便应用程序的所有部分都可以根据需要进行查询。 由于MySQL没有内置的透视功能,借助Google找到的解决方案可以在http://buysql.com/mysql/14-how-to-automate-pivot-tables.html动态旋转 代码基本上读为

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 id, ', @sql, ' FROM properties GROUP BY item_id');

如果我编写存储过程,这可以正常工作。但是,如上所述,我打算创建视图,以便像普通表一样使用/查询。 但是,据我所知,在MySQL中,我们不能使用变量,动态查询或存储过程:-( 不确定,如何实现这一目标。我试过搜索SO和谷歌,但没有找到任何合适的方法来创建视图或可行的备用。 请指教。

0 个答案:

没有答案