繁体   English   中英

动态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”),日期(基准),金额(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 ,以检查该值是否已被截断。


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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM