如何使用多个值运行删除 sql 查询


How to run delete sql query with multiple values

我想运行一个包含多个值的删除 sql 查询。但我做不到。所以需要你的帮助。

在控制器.php页面中:

function deleteFiles()
{
$mainframe = &JFactory::getApplication();
if ($this->_model->deleteFiles()) {
$mainframe->enqueueMessage('Files deleted successfully');
} else {
$mainframe->enqueueMessage('Files not deleted');
}
    ARequest::redirectList($this->_controllerName);
}

在模型.php页面中:

function deleteFiles($field, $value)
{
$query = 'DELETE FROM ' . $this->rquote($this->_table->getTableName()) . ' WHERE ' . $this->rquote($field) . ' = ' . $this->_db->Quote($value);
$this->_db->setQuery($query);
return $this->_db->query();
}

在"文件.php"页面中

function deleteFiles()
{
$this->_db->setQuery('DELETE r 
            FROM #__booking_reservation AS r 
            WHERE r.state = ' . FILES_ACCEPT);
$this->_db->query();
return true;
}

现在在文件.php页面中,我想添加FILES_BOOKED、FILES_CANCEL FILES_DELETE以及当前FILES_ACCEPT。但我不知道该怎么做。

你能帮帮我吗?

您只需在

SQL查询中定义它,只需WHERE添加每个案例OR

DELETE r 
FROM #__booking_reservation AS r 
WHERE r.state = .. OR r.state = .. OR ...

更新

$this->_db->setQuery('DELETE r 
        FROM #__booking_reservation AS r 
        WHERE r.state=' .FILES_ACCEPT. ' OR r.state=' .FILES_BOOKED);

这是你想要的吗?

. . . 
WHERE r.state IN (' . FILES_ACCEPT . ', ' . FILES_BOOKED . ', ' FILES_CANCEL . ', ' . FILES_DELETE . ')' );

这假定全大写名称包含 state 的有效值。