2012-05-24 3 views
0

У меня есть SQL SELECT заявления, которое более 540 символов внутри хранимой процедурыиспользования LONGTEXT в качестве переменного для создания выберитеСтрокового вызывает вопрос

Я поместил его иным переменный называется l_final_query типа LONGTEXT

Теперь, когда я выполнить этот запрос, как:

PREPARE stmt7 FROM @l_final_query; 
EXECUTE stmt7; 

Он выходит из строя. Однако, когда я начинаю вырезать последний порядок по предложению sql, он работает. Раньше у меня были проблемы с размером переменных, которые использовались для выполнения, и работали вокруг. Но теперь у меня нет беспокойства. Я попытался разместить предложение order by в другом варибельном l_final_query2 и конкатрировать это с большим выбором, но это также не работает.

Это sql, который привязан к переменной и выполнен. Я включил заказ по статье:

set @l_final_query = concat("SELECT a.project_code as projectCode, a.project_name as projectName, a.project_creation_date as projectCreationDate, a.project_end_date as projectEndDate, a.project_status as projectStatus, count(c.project_code) as num from projects a inner join ", l_table_name, " b on a.project_name like concat(\"%\",b.expertise_desc,\"%\") OR a.project_description like concat(\"%\",b.expertise_desc,\"%\") left join project_ids c on c.project_code = a.project_code group by a.project_code order by a.project_status, a.project_creation_date desc"); 
+0

Надеюсь, что у вас есть правильный запрос. Но все же было бы хорошо видеть, что это такое и что такое ошибка stacktrace. –

+0

Можете ли вы посмотреть и узнать, знаю ли я, –

+0

Я не уверен, что это действительно длинная проблема с запросом. Для перекрестной проверки попробуйте с этими изменениями: * '1.' * Удалить *' как '* ключевые слова. * '2.' * Удалите или сократите *' псевдонимы столбцов' *. * '3.' * Включите *' order by xxx' * после этого. –

ответ

1

MySQL тип varchar данных может занять от 0 до 65535 в 5.0.3 и более поздних версий, как в их руководстве. Не думайте, что longtext вообще требуется. Можете ли вы попробовать только варчар?

Кроме того, пожалуйста, покажите команды SQL и попытки объединения, которые вы пытались просмотреть, и указать на любые другие проблемы.