mysql - Codeigniter - 在同一查询上结合获取和更新

标签 mysql codeigniter

我使用下面的代码来获取具有指定条件的记录,然后仅更新相同的记录。

$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/

相关文章:

php - 使用ckeditor在页面上编辑多个div,然后将HTML保存到文件

php - 在 Ubuntu 中运行 CodeIgniter 项目

MySql 在全文搜索查询中遗漏了短单词

mysql - phpMyAdmin 和 mysql 保留字

python - oursql 插入数据速度极慢

php - codeigniter,使用 Case When 进行Where 查询

codeigniter - CKEditor 在 Codeigniter 中发布问题,标签被修剪

javascript - 获取 Web 服务器时间并将其显示在网页上的正确方法

mysql - 在使用having、order by和limit而不使用group by时MariaDB的行为不一致

mysql - 1064 MYSQL 误差距离公式