簡體   English   中英

如何通過更新表php替換數據庫值

[英]how to replace database value by update table php

我創建了兩個表subscription_pending和subscription_complete

subscription_complete包含

id mag1 mag2 mag3 mag4
4  100  0    100  0

subscription_pending包含

id mag1 mag2 mag3 mag4
4       100    

我通過以下命令插入值

$final_q=  "INSERT INTO `subscription_complete` (`id`, `mag1`, `mag2`, `mag3`, `mag4`) VALUES ('".$row_q['id']."','".$row_q['mag1']."','".$row_q['mag2']."','".$row_q['mag3']."','".$row_q['mag4']."'

我想更新subscription_complete表而不替換其值,即我要在其中寫以下查詢的100

$final_q1= "update subscription_complete set mag1='".$row_q['mag1']."',mag2='".$row_q['mag2']."',mag3='".$row_q['mag3']."',mag4='".$row_q['mag4']."' where id='".$row_q['id']."'"; 

您能告訴我如何在剩余列中將值設為0的情況下設置100值嗎?

先感謝您 !!

假定subscription_pending的空字段包含NULL ,而不是空字符串。

UPDATE subscription_complete AS c
JOIN subscription_pending AS p ON p.id = c.id
SET c.mag1 = IFNULL(p.mag1, c.mag1),
    c.mag2 = IFNULL(p.mag2, c.mag2),
    c.mag3 = IFNULL(p.mag3, c.mag3),
    c.mag4 = IFNULL(p.mag4, c.mag4)

如果它們實際上是空字符串,請使用IF(p.magX = '', c.magX, p.magX)代替IFNULL測試。

暫無
暫無

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

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