MySQL在一次查询中使用PHP中的IF-ELSE语句更新多列
我有两个PHP中的MySql查询。我想将它们合并到一个或两个数据库中,以减少数据库负载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
$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注入的攻击