我有一个图书表和状态列(位类型),我在编辑图书信息表单时有3种情况。
- 如果图书可用状态字段 = true,
- 如果图书不可用状态字段 = false,
- 如果只编辑除状态字段之外的书籍信息,则应忽略 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/