鍍金池/ 問答/數(shù)據(jù)庫/ mysql根據(jù)包含字符不同更新字符串

mysql根據(jù)包含字符不同更新字符串

假設(shè)一個(gè)字段,‘a(chǎn)’開頭就替換成‘1’,‘b’開頭就替換成‘2’,怎么寫更新語句好一點(diǎn)
嘗試過regexp,但是這樣就有很多條sql語句,就會(huì)很慢

UPDATE trade SET
transportal='1'
WHERE
transportal REGEXP '^(a)';

有沒有什么優(yōu)化的辦法啊

回答
編輯回答
忠妾

如果只是count統(tǒng)計(jì),不需要做update操作。

我感覺你的需求用case when表達(dá)式的計(jì)算值,再做計(jì)數(shù)統(tǒng)計(jì)就可以了,如:

select trans_type, count(*)
from (
    select case when left(transportal,1) = 'a' then 1 when left(transportal,1) = 'b' then 2 else 0 end as trans_type
    from trade 
) t
group by trans_type
2017年5月10日 17:08
編輯回答
久礙你

這些應(yīng)該由程序控制邏輯,SQL不應(yīng)該做這種事情

2018年9月5日 06:16