我试图创建一个不是 sql 意义上的“触发器”,但我想在状态字段设置为 100 时更新 date_added 字段
$sql='UPDATE table
SET status=:status,
date_added=[PSEUDO CODE :status=100 ? now() : null;]
WHERE id=:id';
$stmt=$conn->prepare($sql);
$stmt->bindParam(':id', $id, PDO::PARAM_STR);
$stmt->bindParam(':status', $status, PDO::PARAM_STR);
$stmt->bindParam(':sign_id', $sign_id, PDO::PARAM_STR);
$stmt->execute();
- 在 sql 查询中尝试这样做会更好吗(不确定如何 执行此操作)或在 php 页面上执行(我想我可以无意中通过 那个) 在发出查询之前?
- 是否有任何性能提升方式?
在此先感谢您的帮助
最佳答案
date_added = :date
$date = $status == 100 ? date('Y-m-d H:i:s') : null;
$stmt->bindParam(":date", $date);
您也可以在 MySQL 中使用 IF
进行这种比较。我不认为一个比另一个特别快,但对我来说使用 PHP 进行比较更有意义。
关于php - 具有绑定(bind)参数的 PDO sql 查询 If 更新中的语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20202175/