动态SQL查询- >行数据到列名


Dynamic SQL query - > row data to column name

我对动态SQL查询/行数据到列名有一个小/大问题。我有这个链接:http://sqlfiddle.com/!9/b4478/1

但是如果我添加更多的数据,查询不工作。输入错误:

You have an error in your SQL syntax; check the manual that corresponds 
to your MySQL server version for the right syntax to use near 'FROM test
 GROUP  BY nid' at line 2

我的数据库目前很大。在接下来的几天里,我制作了空数据库。添加到名称(另一个表,连接id到"nid")、日期(datum)、金额(osszeg)。每周的数据都太多了(可能是一次太多了,然后查询就不工作了)

和我需要一个简单的/单一的PHP查询代码为这个查询。

谢谢你的帮助,抱歉我的英语不好。非常谢谢!

没有看到实际的SQL语句,我们只是猜测。但是我怀疑您正在遇到GROUP_CONCAT函数的文档行为,它返回由MySQL变量GROUP_CONCAT_MAX_LEN指定的最大长度的字符串。默认为1024字节。

参考:https://dev.mysql.com/doc/refman/5.6/en/server-system-variables.html sysvar_group_concat_max_len

SET group_concat_max_len = 1024;

为了调试,你可以让MySQL存储程序发出@sql的内容,而不是试图准备它,例如

SELECT @sql;

您可以考虑比较GROUP_CONCAT函数返回的字符串的长度(以字节为单位)是否等于GROUP_CONCAT_MAX_LEN的最大长度,以检查该值是否已被截断。


另一方面,我会选择将此结果作为一组行返回,而不是作为单行上的列返回。我将做任何必要的翻译显示在客户端,而不是在数据库中做它。