Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php CodeIgniter:如何使用活动记录在Where条件下将一列值移动到另一列值_Php_Mysql_Codeigniter_Activerecord_Model - Fatal编程技术网

Php CodeIgniter:如何使用活动记录在Where条件下将一列值移动到另一列值

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

我想将一列值移动到另一列值,例如,有两个表列“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 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