簡體   English   中英

更新查詢兩個不同表中的兩個不同列-MySQL

[英]Update query for two different Column in two different table-MySQL

我正在處理upwork類型的項目,並希望創建一個出價更新查詢。 用戶有免費出價(他每月默認獲得)和專業出價,可以按一定金額購買。
現在,如果他將適用於任何工作,然后我想更新-1為job_quota(如果它不為0的話),然后-1從親投標升序排列。

我的表結構(在用戶表中):

使用者

job_quota -------->id

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

買入價

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

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

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

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

我有這樣的想法-但我不知道如何將其實現到MySQL查詢中:

$query=<<< SQL
update users set job_quota=job_quota-1 if ( job_quota !=0 )
else update buy_bids set no_bids =no_bids-1 where user_id=53
SQL;

誰能建議我如何實現它,我不是在尋找准確的解決方案,但需要您的幫助和建議,我應該嘗試如何實現這一目標。

非常感謝。

這是我的建議:

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
$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
    ');
}

像這樣嗎?

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;

這未經測試。 只是一個建議。 我不確定else條件,所以只添加了users.job_quota =0 相應地更改它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM