mysql根据包含字符不同更新字符串

假设一个字段,‘a’开头就替换成‘1’,‘b’开头就替换成‘2’,怎么写更新语句好一点
尝试过regexp,但是这样就有很多条sql语句,就会很慢

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

有没有什么优化的办法啊

阅读 1.8k
2 个回答

如果只是count统计,不需要做update操作。

我感觉你的需求用case when表达式的计算值,再做计数统计就可以了,如:

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

这些应该由程序控制逻辑,SQL不应该做这种事情

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题