在两个不同的表-MySQL中更新两个不同列的查询

时间:2015-08-31 06:10:17

标签: php mysql

我正在开展upwork类型项目,并希望为出价创建更新查询。 用户可以免费出价(默认情况下每月获得)和专业出价,可以购买一定金额 现在,如果他申请任何工作,那么我想更新-1 for job_quota(如果它已经不是0),然后{pro}升级为专业出价{/ p}}。

我的表格结构(在用户表格中):

用户

-1

Buy_bids

job_quota -------->id

12---------------->53

我有这样的想法 - 但我不知道如何将它实现到MySQL查询中:

id---->no_bids--->amount_paid--->user_id 

1-----> 20------------>20---------------> 53

2-----> 20------------>20---------------> 53

3-----> 20------------>20---------------> 53

任何人都可以建议我如何实现它,我不是在寻找准确的解决方案,但我需要你的帮助和建议我应该尝试实现这一点。

非常感谢。

3 个答案:

答案 0 :(得分:1)

这是我的建议:

UPDATE users
    IF (job_quota NOT IN 0 )
    THEN  SET job_quota = -1
    ELSE (UPDATE buy_bids SET no_bids = no_bids -1 
          WHERE users.id = 53)
WHERE id= 53

答案 1 :(得分:0)

$stmt = $mysqli->query('
    update users 
    set job_quota=job_quota-1 
    where job_quota != 0 
      and user_id=53
');

if ($stmt->affected_rows == 0) {
    $mysqli->query('
        update buy_bids 
        set no_bids =no_bids-1 
        where user_id=53
    ');
}

答案 2 :(得分:0)

这样的东西?

Update users ,buy_bids 
set users.job_quota = case when users.job_quota !=0 then 
                                users.job_quota-1
                      else users.job_quota end,
    buy_bids.no_bids =case when users.job_quota =0 then 
                                 buy_bids.no_bids-1
                     else buy_bids.no_bids end
WHERE users.user_id=buy_bids.user_id        
and users.user_id=53;

未经测试。只是一个建议。我不确定其他条件,所以只添加了users.job_quota =0。相应地改变。