我试图找到一种方式来运行更新查询orientdb,我更新多个属性字段中。我将在边缘具有两个属性,一个名为acknowledged_at,另一个名为read_at。在read_at更新之前,acknowleded_at字段可以被更新。但是,我想确保在更新所有read_at字段时,我还确保任何acknowledge_at字段都使用当前时间戳更新(如果它们以前未设置)。orientdb只更新,如果空
我的使用情况,这是有Facebook的通知等。用户可以确认通知,但不能在当时阅读。但是,如果他们点击一个read_all按钮,或者稍后决定“读取”该通知,那么我想确保我也正在更新acknowledgeed_at属性(如果它为null)。
有没有办法做到在acknowledged_at场case语句类型的更新,如果空只更新?
更新:只是为了更清楚,我总是要更新read_at场,但只希望更新acknowledged_at场,如果它是空的。如果以前承认我希望保持这个价值。
UPDATE EDGE received SET read_at = '#{DateTime.now}', acknowledged_at = '#{DateTime.now}' WHERE out.employeeId = '#{employeeId}'
在我上面的场景中,我总是希望更新read_at字段,但只有在值为null时才更新acknowledge_at。在我的场景中,可能已经确认了通知,但未读取它。将是有条件的,如果该值为null,而read_at始终得到更新。 –
@DavidBodenschatz嗨,我已经更新了答案。现在应该工作 –
谢谢,这解决了问题。感谢帮助。 –