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

时间:2015-07-27 21:44:39

标签: php mysql pivot

我对列名称的动态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”),日期(基准),金额(osszeg)。 一周到一周的数据太多(可能只是一次太多,然后没有处理查询)

我需要一个简单/单一的PHP查询代码来进行此查询。

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

1 个答案:

答案 0 :(得分:0)

如果没有看到实际的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,以检查该值是否已被截断。< / p>

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