需求:
創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供凌海網(wǎng)站建設(shè)、凌海做網(wǎng)站、凌海網(wǎng)站設(shè)計(jì)、凌海網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)與制作、凌海企業(yè)網(wǎng)站模板建站服務(wù),十載凌海做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
如何將多條update語句合并為一條update語句:
如,update table1 set col='2012' haha='hello' where id='2014001'
update table1 set col='1009' haha='nihao' where id='2014003'
上面 這兩行 執(zhí)行之后,每一條需要5秒,總共需要10秒才能執(zhí)行完.
如何合并為一條?
在網(wǎng)上找了好久,總結(jié)了一個(gè)相對簡單的語句(有些語句是函數(shù)語句,有點(diǎn)暈),如下:
update table1 set col=(case id
when '2014001' then '2012'
when '2014003' then '1009' end),
haha=(case id
when '2014001' then 'hello'
when '2014003' then 'nihao' end)
where id in('2014001','2014003')
改成這個(gè)之后,還是需要5秒,但是,它只執(zhí)行了一次,所以只需要5秒
MySQL InnoDB 表數(shù)據(jù)頁或者二級索引頁(簡稱數(shù)據(jù)頁或者索引頁)的合并與分裂對 InnoDB 表整體性能影響很大;數(shù)據(jù)頁的這類操作越多,對 InnoDB 表數(shù)據(jù)寫入的影響越大。
MySQL 提供了一個(gè)數(shù)據(jù)頁合并臨界值(MERGE_THRESHOLD),在某些場景下,可以人為介入,減少數(shù)據(jù)頁的合并與分裂。
在 InnoDB 表里,每個(gè)數(shù)據(jù)頁默認(rèn)16K 大小,默認(rèn) MERGE_THRESHOLD 值為 50,取值范圍從 1 到 50,默認(rèn)值即是最大值。也就是當(dāng)頁面記錄數(shù)占比小于 50% 時(shí),MySQL 會(huì)把這頁和相鄰的頁面進(jìn)行合并,保證數(shù)據(jù)頁的緊湊,避免太多浪費(fèi)。
您好.
以前有高人寫過類似的:
select id,group_concat(re_id order by re_id separator ",") as re_id
from tablename
group by id
方法2:
select group_concat(list_name) from aa_list
如果還有問題,可以繼續(xù)追問,感謝。
使用方法:
CONCAT(str1,str2,…)
返回結(jié)果為連接參數(shù)產(chǎn)生的字符串。如有任何一個(gè)參數(shù)為NULL ,則返回值為 NULL。
注意:
如果所有參數(shù)均為非二進(jìn)制字符串,則結(jié)果為非二進(jìn)制字符串。
如果自變量中含有任一二進(jìn)制字符串,則結(jié)果為一個(gè)二進(jìn)制字符串。
一個(gè)數(shù)字參數(shù)被轉(zhuǎn)化為與之相等的二進(jìn)制字符串格式;若要避免這種情況,可使用顯式類型 cast, 例如:
SELECT CONCAT(CAST(int_col AS CHAR), char_col)
MySQL的concat函數(shù)可以連接一個(gè)或者多個(gè)字符串
MySQL的concat函數(shù)在連接字符串的時(shí)候,只要其中一個(gè)是NULL,那么將返回NULL
您好.
以前有高人寫過類似的:
select id,group_concat(re_id order by re_id separator ",") as re_id
from tablename
group by id
方法2:
select group_concat(list_name) from aa_list
如果還有問題,可以繼續(xù)追問,感謝。