2012-05-24 23 views
0

我有一個SQL SELECT語句是存儲過程中超過540個字符使用LONGTEXT作爲一個變量來創建一個SELECT字符串會導致一個問題

我已經把它伊諾一個名爲類型l_final_query可變LONGTEXT

現在,當我執行此查詢爲:

PREPARE stmt7 FROM @l_final_query; 
EXECUTE stmt7; 

它失敗。但是,當我開始切割sql的最後一個order by子句時,它可以工作。過去我曾經遇到過一些問題,其中變量的大小曾經被執行過並且有變通的問題。但現在我沒有一個完整的。我試圖將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

希望你陷害了一個有效的查詢。但是,仍然很高興看到它是什麼以及錯誤堆棧跟蹤是什麼。 –

+0

你可以看看我知道嗎, –

+0

我不確定它是否真的是一個冗長的查詢問題。對於交叉檢查,請嘗試以下更改:*'1.' *刪除*'as'*關鍵字。 *'2.' *刪除或縮短*列別名*。 *'3.' *在這個改變之後包括*'xxx * * * *。 –

回答

1

的MySQL varchar數據類型可以在5.0.3採取0到65,535和更高版本按他們的手冊。根本不需要考慮長文。你可以嘗試只使用varchar嗎?

此外,請顯示SQL命令以及您試圖讓人們查看並指出其他任何問題的串聯嘗試。

相關問題