2013-07-09 88 views
0

我必須生成一個非常複雜的報表。毫無疑問,有人會問我個人記錄,包括計數,總計等。SQL語句作爲mySQL數據庫中的數據

Im my new to mySql。我試過並發現我可以將Sql語句存儲爲Text類型的數據,而沒有任何實際問題。

如果能夠做到這一點,但迴避了一個主要問題:

這是一個好主意?這裏有什麼會讓我感到「有你!」

(它的你不知道什麼總是得到您,永遠你知道是什麼)

報告將返回銷售計數:5

我會活到存儲「SELECT * FROM銷售WHERE Producer_ID = 34「,因此我可以快速獲得組成銷售計數的34條記錄

+1

當你說「Sql語句」是指實際查詢還是返回的數據集?如果是查詢,我想你可能想看看存儲過程。 –

+1

你個人(或你的團隊)把陳述放入數據庫嗎?還是有一部分接受用戶輸入並存儲這些腳本的應用程序?如果只是你,那很可能。但我絕不會允許任何用戶(即使是你「信任」的用戶)有能力創建存儲在任何地方的SQL語句。 –

+0

該報表將返回銷售計數:5我將實時存儲「SELECT * FROM Sales WHERE Producer_ID = 34」,這樣我可以快速獲得組成5個銷售計數的34個記錄。 – JVMX

回答

2

將SQL查詢作爲數據存儲在SQL DB中有時標記爲動態SQL查詢。它很容易出現注射問題,不應輕視。除非你有充分的理由這樣做,否則我建議不要這樣做。

+0

我好奇什麼是將查詢存儲在數據庫中的有效理由? –

+0

@DanyKhalife記得phpmyadmin中的最愛 – mnagel

+0

@DanyKhalife我已經創建了一個應用程序,它使用一個「嚮導」,允許非SQL外行人輸入各種值,從而創建自定義數據視圖。是的,最終的SQL可以由輸入的值派生,但是,我存儲了SQL語句(實際上是它的幾個部分)以提高性能。 – user1032531