Можно использовать GROUP_CONCAT
:
SELECT person_id, GROUP_CONCAT(hobbies SEPARATOR ', ')
FROM peoples_hobbies
GROUP BY person_id;
, Поскольку Ludwig заявил в [1 110] его комментарий, можно добавить DISTINCT
оператор для предотвращения дубликатов:
SELECT person_id, GROUP_CONCAT(DISTINCT hobbies SEPARATOR ', ')
FROM peoples_hobbies
GROUP BY person_id;
, Поскольку Jan заявил в [1 111] их комментарий, можно также отсортировать значения прежде, чем интегрировать его с помощью ORDER BY
:
SELECT person_id, GROUP_CONCAT(hobbies ORDER BY hobbies ASC SEPARATOR ', ')
FROM peoples_hobbies
GROUP BY person_id;
, Поскольку Dag заявил в [1 112] его комментарий, существует 1 024-байтовый предел на результат. Для решения этого выполните этот запрос перед запросом:
SET group_concat_max_len = 2048;
, Конечно, можно измениться 2048
согласно потребностям. Вычислить и присвоить значение:
SET group_concat_max_len = CAST(
(SELECT SUM(LENGTH(hobbies)) + COUNT(*) * LENGTH(', ')
FROM peoples_hobbies
GROUP BY person_id)
AS UNSIGNED
);
В Windows самый простой способ вывести отладочную информацию - это использовать OutputDebugString()
, а затем использовать приложение, способное получать этот вывод. Средство просмотра событий в самой Delphi IDE может получать эти входные данные, или вы можете использовать приложение DebugView из SysInternals для получения выходных данных в системе, в которой не установлена IDE. AFAIK, GExperts имеет аналогичный инструмент тоже. Это связано с тем, что приложение с графическим интерфейсом по умолчанию не имеет консоли для записи выходных данных, в противном случае вы должны создать консоль (см. Ответ Джерри).
Одним из преимуществ OutputDebugString()
является то, что приложение будет работать без проблем, даже если вызов переходит в сборку релиза (или если он оставлен там намеренно), но будьте осторожны, чтобы не выводить конфиденциальную информацию, потому что они могут читать с помощью одного из инструментов выше.
Вы также можете создать специальную форму (то есть с блокнотом для заметок) и направить туда вывод.
Существуют также расширенные возможности регистрации, такие как SmartInspect , CodeSite и другие.
У Delphi есть опция для этого, проверьте «Создать консольное приложение» в опциях компоновщика для проекта. Стандартный ввод / вывод будет направлен в консольное окно, которое будет сопровождать ваше приложение GUI . Затем вы можете использовать Writeln
и т. Д., Как обычно.
Прочитайте Вывод (или Ввод ) из документов:
Программы Delphi имеют стандартный выходной файл, если они связаны как консольные приложения.