我使用下面的代码来获取具有指定条件的记录,然后仅更新相同的记录。
$this->db->where('Parameter1', 'TRUE');
$query = $this->db->get('Messages');
$this->db->where('Parameter1', 'TRUE');
$this->db->set('Parameter1', 'FALSE');
$this->db->update('Messages');
这可行,但使用 where() 命令调用两次相同的查询似乎浪费服务器电源。是否可以使 get() 命令不重置查询或在更新命令中使用以前的记录集?
最佳答案
我怀疑这是你真正需要担心的事情,因为它会占用太多资源,并且你无法在实际的sql查询中真正重用where子句。但如果您愿意,可以重构以获得稍微干净的代码。
$unread = array('Parameter1'=>TRUE);
$read = array('Parameter1'=> FALSE);
$query = $this->db->get_where('Messages', $unread);
$this->db->update('Messages', $read, $unread);
注意: 在您的代码中,获取 Parameter1 设置为 true 的 every 元素,然后将这些元素中的 every 更改为 false。这几乎肯定是不可取的,但也许这是您在实际应用程序中其他地方处理的问题。
关于mysql - Codeigniter - 在同一查询上结合获取和更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42759886/