整理一下近期專案中使用過的sql技巧

2021-07-11 12:32:52 字數 1487 閱讀 2929

最近參與專案的時候遇到一些問題,為避免遺忘,寫個部落格記錄一下。

問題一:前台傳來的資料以1,2,3,4這種格式的數字的時候,在資料庫中進行模糊查詢,like concat('%,',#,',%'),來查詢的時候會出現一些問題,會將查詢數字的資料都選出來。因此可以構造乙個字段,類似於,concat(",",'1',","),篩選資料的時候 ,使用 and  type2 like concat('%,','1',',%'),這種格式,避免進行模糊查詢的時候,出現多餘的資料。

使用的mybatis 語句如下:

問題二:

在做另乙個專案的時候,需要實現將三個表的資料加起來,但是表的字段有寫不同,在這種時候,可以構造表的字段,將三個表的字段構造成一致。

三個表的結構如下:

day表

hour表

month表:

我開發的介面是根據sn號按照已有的年份來統計電量,因此可以用left函式進行擷取構造相同的字段,使用union all連線三個表,然後求出總電量。

sql如下:

select sn,sum(kwh) as kwh ,year  from

(select sn,kwh ,year from kwh_month where sn =#

union all

select sn,kwh ,left(k.day,4) year from kwh_day k where k.sn =#

union all

select sn,kwh,left(kh.day,4) year from kwh_hour kh where kh.sn=#

) f group by f.year,f.sn

order by f.year asc

把近期的小錯誤整理一下

1.全域性變數神馬的,是得先宣告之後才能用的。就是定義放在使用之前。而不是只要定義了就行了。2.題目的時限不都是1秒的,有時也有3秒時限的。自己要注意,這對自己的解題會有很大幫助,可以讓自己判斷一下具體該採用哪種演算法 3.左移,就是把數字二進位制形式的數字所有位向左移位,後面的位用零補齊。所以,左...

記錄一下使用過的框架大全

1.一款選擇框架 compile com.bilibili boxing impl 0.6.0 片段 private void selectimage 效果如下 2.picasso 好用的開源框架 compile com.squareup.picasso picasso 2.5.2 片段 picas...

歸納一下平時使用過的oracle函式

學習使用oracle也有一年多了,之前使用過的一些函式,鄙人現在將其做一些歸納,如果忘記了可以隨時檢視。一 字元函式 1 length str 返回表示式中的字元數 select length hello world from dual 返回結果 12select instr hello world...