0

ストアド プロシージャ内に 540 文字を超える SQL 選択ステートメントがあります。

l_final_queryタイプの変数に配置しました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");
4

1 に答える 1

0

MySQLvarcharのデータ型は、5.0.3 以降のバージョンでは、マニュアルに従って 0 ~ 65,535 を取ることができます。長いテキストがまったく必要だとは思わないでください。varchar だけで試すことはできますか?

また、人々が他の問題を見て指摘できるように、あなたが試みた SQL コマンドと連結などの試みを示してください。

于 2012-05-24T08:24:51.120 に答える