需求:把test_his里面ts1,ts2,ts3字段的汉字变成sm_dict_grade里面的id。两个表的关联就是sm_dict_grade表的name。
说明,sm_dict_grade里面的grade是等级的意思,一共有三级,有的name值是相同的,但是上级不同
需求:把test_his里面ts1,ts2,ts3字段的汉字变成sm_dict_grade里面的id。两个表的关联就是sm_dict_grade表的name。
说明,sm_dict_grade里面的grade是等级的意思,一共有三级,有的name值是相同的,但是上级不同
不一定非要一条sql啊,分三条就是,类似更新第一级的:
UPDATE test_his AS t
JOIN sm_dict_grade AS s ON s.GRADE = 1 AND s.NAME = t.TS1
SET t.TS1 = s.ID
15 回答8.4k 阅读
8 回答6.2k 阅读
5 回答3.2k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答3.6k 阅读✓ 已解决
1 回答4k 阅读✓ 已解决
3 回答6k 阅读
修改第一等级,GRADE=1并且TS1=NAME
修改第二等级,GRADE=2并且TS2=NAME并且TS1=PANME
修改第三等级,GRADE=3并且TS3=NAME并且TS2=PANME
要从上到下依次执行,有用到上级的id值。
一开始看不懂所说的
有的name值是相同的,但是上级不同
,看了下sm_dict_grade
表的ID 19和20的数据才明白,NAME可能相同,但PANME不同,对应上一级的ID,所以关联条件中要包含上级关联。如果不确定修改是否正确,建议先查出来,人工比对下,再执行update!
例如: