91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

程序架構探討—001 多段select語句的方案

發布時間:2020-07-02 12:49:44 來源:網絡 閱讀:261 作者:yangyoushan 欄目:開發技術

有時候,我們需要做多條件查詢,多個條件為“或”的關系,分類查詢等,一般會用到多段select語句,然后用union或者union all進行連接,進而查出需要的結果。

例如,

select 

a.id as id,

a.name as name,

a.age as age

from scama.table_name2 a

where 1=1


union all


select 

b.sn as id,

b.name as name,

b.age as age

from scama.table_name2 b

where 1=2


union all


select 

c.serial_id as id,

c.name as name,

c.age as age

from scama.table_name3 c

where 1=3

;

此時程序實現時,存在不少的麻煩。例如,大段的相似的sql容易出錯,后續的維護的不方便,以及如果程序拼接了sql后傳遞給數據庫執行帶來的性能問題等等。

那么如何進行更好的改進實現呢?

方式有很多,博主根據自己的經驗提供如下兩種方案可供參考。

1、將各段查詢語句,分開調用

將每段select單獨寫方法調用,最后再將每個調用的結果匯總為結果。

例如,

datatable dt1= 調用第一段的sql的結果;

datatable dt2= 調用第二段的sql的結果;

...

依次查詢完成,最后合并dt1,dt2....

這種方案針對前臺程序將sql拼接為字符串,通過程序本身框架內實現的與數據庫的連接方式,執行sql語句。


2、后臺完成,將查詢的結果寫入臨時表或者中間表,直接查詢該表的結果

即,使用存儲過程或者函數,將需要查詢的多條sql語句插入至一張臨時表(物理表也可),然后返回結果。

這種方式,因為是在數據庫中完成,那么有些需要查詢的字段,就可以單獨寫語句查詢出來再賦值給當前結果。



向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

岳阳市| 青神县| 开远市| 新河县| 荣昌县| 蓝田县| 陇西县| 濮阳县| 额尔古纳市| 吉木乃县| 康保县| 溆浦县| 郎溪县| 古交市| 青龙| 苍南县| 电白县| 沈阳市| 隆安县| 永登县| 松阳县| 井冈山市| 麟游县| 化德县| 江北区| 兰坪| 辛集市| 清苑县| 大兴区| 通州区| 海淀区| 盐源县| 株洲县| 莱阳市| 灵石县| 桃园市| 定陶县| 阳高县| 德州市| 河东区| 醴陵市|