首页 新闻 搜索 专区 学院

下面两个mysql语句是否自联表有什么区别?

0
[待解决问题]

下面两个mysql语句有啥不同?还是说就是一样的?
sql目的是将km字段中的‘万公里’删掉,否则置为0.01

update test inner join (
	select name,(
		case 
		when km like "万公里" then
			left(km, locate("万",km) - 1)
		else
			0.01
		end
	) km
	from test
) as b on a.name = b.name
set a.km = b.km

update test 
set km=(
	case 
	when km like "万公里" then 
		left(km, locate("万",km) - 1) 
	else 
		0.01 
	end
)
浮生月·柒的主页 浮生月·柒 | 菜鸟二级 | 园豆:204
提问于:2020-08-24 22:53
< >
分享
所有回答(1)
0

第二个性能佳,修改全部数据它只需要轮询(全表扫描)一次。
第一个 会关联的时候查询一次数据(全表扫描) 然后再根据条件全表扫描一次 再逐一修改

第一个适用于根据其他表的属性更改,

xiyanya | 园豆:327 (菜鸟二级) | 2020-08-25 15:56
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册