使用LONGTEXT作为变量来创建SELECT字符串会导致问题

时间:2012-05-24 08:10:23

标签: mysql

我有一个sql select语句,该语句在存储过程中超过540个字符

我已将它放在名为l_final_query <{1}}

LONGTEXT变量中

现在,当我执行此查询时:

PREPARE stmt7 FROM @l_final_query;
EXECUTE stmt7;

失败了。但是,当我开始删除sql的最后一个order by子句时,它可以工作。我过去遇到过一些问题,过去常常会执行变量大小并且有解决方法。但是现在我没有了。我试图将order by子句置于另一个变量l_final_query2中,并将其与大选择相连,但这也不起作用。

这是附加到变量并执行的sql。我已经包含了order by子句:

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");

1 个答案:

答案 0 :(得分:1)

根据他们的手册,MySQL varchar数据类型在5.0.3及更高版本中可以占用0到65,535。不要认为长篇大论是必需的。你能尝试只使用varchar吗?

另外,请显示SQL命令以及尝试连接的尝试,供人们查看并指出任何其他问题。