MySql的连表更新问题 返回

C#论坛 老数据
4 2245
该叫什么 Mirage 发布于2019/5/29
悬赏:5 飞吻

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