我有一个书表和一个状态列(位类型),在编辑我的书信息表时有3种情况。
如果书籍可用状态字段= true,
如果书籍不可用状态字段=否,
如果仅编辑书籍信息(状态字段除外),则应忽略MySQL表上的状态列
因此,对于第三种情况,如果未设置任何值,我必须忽略状态栏,我有什么办法可以做?请帮帮我
这是我的更新查询
$this->db->query('UPDATE books SET book_title = :title, file_type = :file_type, status = :status WHERE id = :id');
$this->db->bind(':title', $data['title']);
$this->db->bind(':file_type', $data['file_type']);
$this->db->bind(':status', $data['availability']);
$this->db->bind(':id', $data['id']);
最佳答案
如果不想更新它,可以使用mysql的ifnull()
并为状态传递null。这个想法是,如果您传递null,则只需保留该值即可。
$this->db->query('UPDATE books
SET book_title = :title, file_type = :file_type,
status = ifnull(:status,status)
WHERE id = :id');
$this->db->bind(':title', $data['title']);
$this->db->bind(':file_type', $data['file_type']);
if () { // You want to set the value
$this->db->bind(':status', $data['availability']);
}
else { // leave value as is
$this->db->bind(':status', null);
}
$this->db->bind(':id', $data['id']);
您将需要完成
if()
位,以确定您希望此逻辑如何发生。关于php - 在mysql中更新时如何忽略列?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50461235/