我有一个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");
答案 0 :(得分:1)
根据他们的手册,MySQL varchar
数据类型在5.0.3及更高版本中可以占用0到65,535。不要认为长篇大论是必需的。你能尝试只使用varchar吗?
另外,请显示SQL命令以及尝试连接的尝试,供人们查看并指出任何其他问题。