У меня небольшая / большая проблема с динамическим запросом 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
моя база данных в настоящее время большая.
в следующие дни я делаю пустую базу данных.
я добавляю в имена (другую таблицу, связанный идентификатор с «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
, чтобы проверить, было ли усечено значение.
С другой стороны, я бы предпочел вернуть этот результат в виде набора строк, а не в виде столбцов в одной строке. И я хотел бы сделать любой необходимый перевод для отображения на стороне клиента, а не делать это в базе данных.
Других решений пока нет …