我已经通过了许多查询,但似乎找不到正确的组合,使这项工作。我得到错误“您不能在from子句中指定更新的目标表't1'。我知道mysql不喜欢update语句中的子查询,也读过将其 Package 到其他select语句中的内容,但似乎无法理解。下面是我要找的内容的详细查询:
UPDATE myTable t1 SET t1.num=concat(t1.num,'B') WHERE t1.num in ('1','2') and t1.expiry=(SELECT max(t2.expiry) from myTable t2 where t2.num=t1.num);
基本上是尝试获取每个号码(num)的最新日期(到期日),并在适用的情况下更改号码。
1条答案
按热度按时间aelbi1ox1#
这应该起作用: