PHP 使用 IF 更新查询

标签 php mysql sql

我想使用 PHP 在 MySQL 数据库上使用 if 语句运行更新查询。 我想更新我的网上商店中的库存,但前提是客户订单的数量存在。 我尝试过这样的事情

$updatequery = "UPDATE products 
                SET stock 
                CASE WHEN (stock >= '$quantity') THEN (stock=stock-'$quantity')
                    ELSE (stock= stock)
                END
                WHERE product='$product'"; `

或者像这样

$sql = "UPDATE products SET\n"
. "stock = IF(stock>=$quantity, stock=stock-$quantity, IF(stock<=$quantity, stock=stock) )\n"
. "WHERE product=$product"; `

有人可以帮助我解决我遇到的问题吗?

最佳答案

您无法从 CASE 返回类似 stock = stock 的表达式。请尝试以下操作:

$sql = "UPDATE products 
        SET stock = CASE
                        WHEN stock >= $quantity THEN (stock - $quantity)
                        ELSE stock 
                    END
        WHERE product = '$product' "

$sql = "UPDATE products 
        SET stock = IF(stock >= $quantity, (stock - $quantity), stock)
        WHERE product = '$product' "

关于PHP 使用 IF 更新查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23870358/

相关文章:

javascript - 当 php 脚本通过 ajax 运行时显示进度条

java - 如何处理DB mysql中的特殊字符

sql - 什么是SQL注入(inject)?

内部连接查询中的 MySQL COALESCE?

php - 如何让用户在一个简单的 php-mysql 站点中的帖子中插入图像??如何将文件名存储在 mysql 数据库中?

php - HTML PHP 结合

php - 数据库连接不上

mysql - mysql 表中的每个主键和外键使用唯一的列名称以避免歧义情况

c# - c# 中的 sql 查询中的索引(从零开始)

mysql - 存储过程在列名上抛出错误