我有以下MySQL语句:
$stmt = $conn->prepare('UPDATE `equipment` SET `currentHours`= :unitHours, `lastUpdate`= :lastUpdate WHERE `equipType`= :equipType AND `unitNumber`= :unitNumber');
$stmt ->execute(array(':lastUpdate'=> $dateToday, ':unitHours' => $unitHours, ':equipType'=> $equipType, ':unitNumber'=> $unitNumber));如果值等于或大于当前存储在该行中的值,我只需要更新currentHours。这可以通过MySQL语句实现吗?还是必须在PHP语言中实现?我是编程新手,如果这听起来像是一个简单的问题,我很抱歉。
发布于 2013-01-28 07:18:32
UPDATE `equipment` SET `currentHours`= :unitHours, `lastUpdate`= :lastUpdate
WHERE `equipType`= :equipType AND `unitNumber`= :unitNumber
AND
currentHours<:unitHours上面的命令仅更新当前小时数低于输入的记录,不会更新与条件的其余部分匹配的上次更新字段。
如果您想要在低于输入时更新字段 currenthours ,但不考虑更新lastupdate字段,则:
UPDATE `equipment`
SET `currentHours`= IF(currentHours<:unitHours,:unitHours,currentHours),
`lastUpdate`= :lastUpdate
WHERE `equipType`= :equipType AND `unitNumber`= :unitNumberhttps://stackoverflow.com/questions/14553438
复制相似问题