MySql的连表更新问题 返回
MySql 版本 8.0
问题描述:MySQL对于文档4.6.0.7 联表更新的用法不支持;
Code:
SysDb.Updateable<LTB_Region>()
.SetColumns(x => x.Order == x.Order + 1)
.Where(x => x.Code == SqlFuncEx.Subqueryable<LTB_Region>().Where(a => a.Code == primaryKey).Select(a => a.ParentCode))
.ExecuteCommand();
生成的sql:
UPDATE `LTB_Region` SET `Order` = (`Order` + @Order)
WHERE ( `Code` = (SELECT `ParentCode` FROM `LTB_Region` WHERE (`Code` = @Order1 ) LIMIT 0, 1))
以上sql 在mysql是不支持的
支持的sql:
UPDATE `LTB_Region` a INNER JOIN (SELECT b.ParentCode FROM `LTB_Region` b WHERE b.code = 610113) c
SET a.`Order` = a.`Order` + 1
WHERE a.Code =c.ParentCode
如何用Sqlsugar 实现上面功能? 不拆分的情况下?
热忱回答(4)
-
fate stay night VIP0
2019/5/29只有查出来更新了
0 回复 -
绝情草 VIP0
2019/5/30联表更新,有温度的ORM了解一下,这都不是问题。
0 回复 -
绝情草 VIP0
2019/5/30联表更新,有温度的ORM了解一下,这都不是问题。
0 回复 -
Mirage VIP0
2019/5/30@fate stay night:后续考虑支持吗?查出来在更新会很麻烦. 建议先文档标记一下,让后面的人别在采坑.
0 回复