mysql 查詢排名 返回值拼接的騷操作

2022-02-11 09:17:51 字數 1077 閱讀 8613

故事背景:

依照原系統的框子搞乙個新的系統給其他人使用,因為新的系統配置庫依然需要使用原有的表,表中有字段區分新的系統,然後就有了這個很沒勁的資料同步。

難點:配置庫碼表資料的主鍵之前是自增,後來改造改成18位有意義的字串行,但是由於部分小哥哥小姐姐不按照規範寫,導致表中主鍵有部分資料是前幾位一樣,有的是後幾位一樣。

資料同步方案一:

使用擷取原有主鍵一部分,再在其前面拼接上日期入錶 (有主見衝突),本來規定的就是年份+日期+各組編號+個人編號+000三位的擴充套件,指令碼寫完執行時發現資料完全不是那麼回事,有很多就是前面改一位,其他不動。。。

insert

into

t_test (

select

concat(

'1901',

if(length(col1)

>12,

right (col1, 12

), col1

)) col1,

col2,

col3

from

t_test

);

當 col1的長度大於12時,保留後面的12位,前拼接1901 當不大於12時 1901直接拼接原來的資料 防止主鍵長度超過限制長度

資料同步方案二:同步資料按順序造新的主鍵  本次同步資料總量5000+ 所以最長資料後面會有4位資料 前面安裝原有主鍵生成策略 往上湊 

insert

into

t_test (

select

concat(

'1901071530044',

@rownum :=

@rownum+1

) col1,

col2,

col3,

concat(id, 'aa

')from

t_test,

(select

@rownum :=

0) r

);

這樣其實主鍵的長度就會不一致,由於是拼接上去的主鍵長度不一樣長所以還是有點問題的 不過測試人員說可以了就這樣搞... gg不gg

C lambda查詢帶返回值

具體如下 var lists new list foreach var item in lists.where x x.length 2 如果願意,完全可以使用action進行輸入上述的item,而不是在foreach中加一層判斷。問題簡單描述就是 簡單來說就是直接在where中輸出長度大於2的字元...

php mysqli 查詢語句返回值型別

link new mysqli localhost root 123 test sql select uname from userinfo a link query sql echo echo 有結果集 var dump a echo sql insert into userinfo values...

主函式的返回值返回給誰 主函式返回值

responsebody報406 原因是 要返回的物件沒有setget方法sdfsdf 自定義視 析器和缺省視 析器需同時使用才好用 如果以redireci或forward字首,那麼 走缺省視 析器 return redirect index.jsp return forward index 需寫全...