我有两张table( account2017
)以及( account2018
)我想添加一个 2
在名字的末尾 name
一个表的行,但仅当两个表包含相同的名称时。为该名称添加2,该名称具有较低的 points
价值观。
总的来说,合并具有唯一键(名称)的两个表的解决方案,但要决定哪一行的名称末尾添加了2,应该在后面加上较低的点。
例如,如果表account2017和account2018在 name
列,添加 2
在该表的名称(=alex2)的末尾,该表在 points
列。由于accounts207中的alex得到20分,accounts2018中的alex只有15分,accounts2018中的alex name将更改为alex2。帐户2017将保持不变。
你知道怎么做吗?
3条答案
按热度按时间vwhgwdsa1#
您需要在两个查询中完成此操作。语法将取决于您使用的内容(mysql、sql server、sqlite),但以下是mysql版本:
然后只需翻转查询即可更新2018表。
icnyk63a2#
您可以使用多表更新来实现这一点。这依赖于mysql,因为它没有对account2017进行任何更改(时间戳没有更改这一事实证明了这一点),但是在触发之前和之后都要小心。
g52tjvyc3#
如果我理解正确的话,听起来你需要使用两个单独的
update
语句,使用exists
要符合标准: