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



我想将一个列值移动到另一个列,例如有两个表列"Location"one_answers"Call_Location"我想将"Call_location"的所有值移动到"location"列,条件仅为选定的日期范围。如何在代码点火器中做到这一点。

$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);

这不起作用。

其中一个问题发现,它将第二个字段名称作为字符串值"call_type",而应该将其作为字段名称。

UPDATE `phone_acc` SET `location` = 'call_type' WHERE `call_date` = '2020-11- 
01 01:33:51'

您的查询缺少当前月份的条件。假设日期存储在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

最新更新