Php CodeIgniter:如何使用活动记录在Where条件下将一列值移动到另一列值
我想将一列值移动到另一列值,例如,有两个表列“Location”、“Call\u Location” 我想将“Call_location”的所有值移动到“location”列,条件仅为“selected date range”。如何在codeigniter中实现它Php CodeIgniter:如何使用活动记录在Where条件下将一列值移动到另一列值,php,mysql,codeigniter,activerecord,model,Php,Mysql,Codeigniter,Activerecord,Model,我想将一列值移动到另一列值,例如,有两个表列“Location”、“Call\u Location” 我想将“Call_location”的所有值移动到“location”列,条件仅为“selected date range”。如何在codeigniter中实现它 $text = "UPDATE phone_acc SET location = call_location WHERE dt >= dateformat(current_date, '%Y-%m-01') AND
$text = "UPDATE phone_acc SET location = call_location WHERE dt >=
dateformat(current_date, '%Y-%m-01')
AND dt < dateformat(current_date, '%Y-%m-01') + interval 1 month;
$this->db->query($text);
您的查询缺少当月的条件。假设日期存储在列
dt
中,您将执行以下操作:
UPDATE phone_acc
SET location = call_localtion
WHERE id = 50959757 AND dt >= dateformat(current_date, '%Y-%m-01')
对于满足where
谓词的每一行,这会将一个值从一列复制到同一行上的另一列
如果数据中有未来日期,也请使用上限:
dt >= dateformat(current_date, '%Y-%m-01')
AND dt < dateformat(current_date, '%Y-%m-01') + interval 1 month
dt>=dateformat(当前_日期,%Y-%m-01')
和dt
您真正想要的是什么??将一列值复制到另一列中。这是一种批量更新,将影响数千条记录。两列数据类型相同??是字符串。似乎没有问题。但它仍然不起作用。db端没有问题。我需要使用update_batch()吗对不起,我在查询中错过了日期,我编辑了帖子。但这不是我面临的问题。它就像一个批量更新,影响了数千条记录。查询运行,结果显示页面找不到错误…但即使是一条选中的记录也没有更新。不知道出了什么问题。我需要使用update_batch()吗?
dt >= dateformat(current_date, '%Y-%m-01')
AND dt < dateformat(current_date, '%Y-%m-01') + interval 1 month