Консультация № 125102
27.02.2008, 13:25
0.00 руб.
0 1 1
Добрый день, Уважаемые!

У меня MySQL 5.0.45, и мне необходимо в запросе возвращать в виде 1 СТРОКИ результат другого запроса, состоящего из НЕСКОЛЬКИХ СТРОК.
Как это реализовать?
Писал свою функцию (см. приложение) - ругается на синтаксис, а я в MySQL слегка новичек :)

Приложение:
CREATE FUNCTION GetRightDate (Id INTEGER, D1 CHAR(10), D2 CHAR(10), T1 CHAR(5), T2 CHAR(5)) RETURNS VARCHAR(250)BEGIN set @tmpStr:=‘‘; SELECT @tmpStr:=Concat_WS(‘; ‘,@tmpStr,dta.DT_Ent) FROM EntMent_DT dta WHERE dta.Ent_Id = ID AND (Date(dta.DT_Ent) BETWEEN D1 AND D2) AND (Time(dta.DT_Ent) BETWEEN T1 AND T2) order by dta.DT_Ent; RETURN SUBSTRING(@tmpStr,2);END

Обсуждение

Неизвестный
27.02.2008, 19:13
общий
это ответ
Здравствуйте, Кривоконь Сергей Алексеевич!
Если Вы пользуетесь англоязычными источниками,
то возможно Вам поможет ссылка

http://dev.mysql.com/doc/refman/5.0/en/create-function.html

Вы уверены, что это хорошее решение- упаковывать в строку все
легальные данные из таблицы?
При таком подходе Вы должны обеспечить гарантию отсутствия ситуации,
при которой возникнет переполнение данных (ошибка на этапе выполнения)
Желательно более подробно описывать постановку задачи.
Возможно, Вам предложат более элегантный алгоритм.

Форма ответа