【问题标题】:Update with a Min in the table用表中的最小值更新
【发布时间】:2011-04-03 08:22:24
【问题描述】:

我想根据同一张表的另一列的最小值更新表中的一列。

例如。

JobPositonId | JobPositonName | JobDescriptionId | ContactId
1            | 1              | 1                | 1
2            | 1              | 1                | 0
3            | 1              | 1                | 0

我想将 ContactId 更新为 1,如果它是 0 并且 JobPositionId 是最低的。

【问题讨论】:

    标签: mysql sql sql-update min


    【解决方案1】:

    我认为这应该可行:

    update jobTable
       set contactid = 1
     where jobPostitionId in (select pos from (select min(jobPositionId) as pos from jobTable where contactId = 0) as subtable);
    

    这是一种类似于此处描述的 hack (http://www.xaprb.com/blog/2006/06/23/how-to-select-from-an-update-target-in-mysql/)。

    【讨论】:

    • 它是否满足您的需求? (总是很难知道什么时候没有设置数据库来进行本地测试。)
    猜你喜欢
    • 2019-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多