我们有一个表格,我们在行中保存数据。例如
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和谷歌,但没有找到任何合适的方法来创建视图或可行的备用。 请指教。