MySQL在一次查询中使用PHP中的IF-ELSE语句更新多列

MySQL在一次查询中使用PHP中的IF-ELSE语句更新多列,php,mysql,Php,Mysql,我有两个PHP中的MySql查询。我想将它们合并到一个或两个数据库中,以减少数据库负载 $sql1 = "UPDATE doorshippers_products SET status='2', price='".$pp."', stock='0', timestemp='".$time."' WHERE sku=$skuu AND price!=$pp"; $conn->query($sql

我有两个PHP中的MySql查询。我想将它们合并到一个或两个数据库中,以减少数据库负载

$sql1 = "UPDATE doorshippers_products 
        SET status='2', price='".$pp."', stock='0', timestemp='".$time."' 
        WHERE sku=$skuu AND price!=$pp";

$conn->query($sql1);


$sql2 = "UPDATE doorshippers_products 
        SET timestemp='".$time."' WHERE 
        sku=$skuu AND price=$pp";

$conn->query($sql2);        



我想使用if/else将它们合并为一个,您可以使用
if
并在一个条件下将列设置回相同的值,否则将使用新值

$sql1 = "UPDATE doorshippers_products 
        SET status=IF(price = $pp, status, '2'), 
        price='".$pp."', 
        stock=IF(price = $pp, stock, '0'), 
        timestemp='".$time."' 
        WHERE sku=$skuu";

您的问题提出/回答了两个不同的问题。价格=$pp`特别是在第一个查询的末尾说“设置状态、价格和股票,如果价格不是传入的价格”,然后下一个查询说“设置时间戳,其中价格等于
$pp
”,这是不可理解的我同意这不美,但它比我们见过的许多三元表达式都要好,而且容易受到sql注入的攻击