我有这个疑问:更新MySQL表字段,只有当条件满足
UPDATE orders SET tracking = '$trackingnumber', tracking_timestamp = NOW()
WHERE comment like '%$ordernumber%'
是否有可能更新tracking_timestamp仅当字段的值0000-00-00 00:00:00?
我有这个疑问:更新MySQL表字段,只有当条件满足
UPDATE orders SET tracking = '$trackingnumber', tracking_timestamp = NOW()
WHERE comment like '%$ordernumber%'
是否有可能更新tracking_timestamp仅当字段的值0000-00-00 00:00:00?
您可以使用CASE
UPDATE orders
SET tracking = '$trackingnumber',
tracking_timestamp = CASE
WHEN tracking_timestamp='0000-00-00 00:00:00'
THEN NOW()
ELSE tracking_timestamp
END
WHERE comment like '%$ordernumber%'
,我想你的意思是'$ tracking_timestamp',你说tracking_timestamp? –
@KristianRafteseth根据你的问题更新'tracking_timestamp'如果tracking_timestamp具有'0000-00-00 00:00:00'的权利?在你的问题中没有'$ tracking_timestamp'变量,所以我提供了字段的变量条件,而不是变量 –
啊我的不好,这里的技巧太快了。 –
使用此查询
UPDATE orders
SET tracking = '$trackingnumber',
tracking_timestamp = IF (tracking_timestamp='0000-00-00 00:00:00',NOW(),'0000-00-00 00:00:00')
WHERE COMMENT LIKE '%$ordernumber%'
应该总是更新跟踪列。 –