public static function deleteFrom($from, ...$expressions) { $statement = new DeleteStatement(); $statement->addClause((new DeleteClause())->setTable($from)); if (!empty($expressions)) { $statement->where(...$expressions); } return $statement; }
public function testAssemble() { $statement = new DeleteStatement(); $update = new DeleteClause(); $update->setTable('tbl'); $statement->addClause($update); $this->assertEquals('DELETE FROM tbl', QueryAssembler::stringify($statement)); $where = new WhereClause(); $where->addPredicate((new NotEqualPredicate())->setField('username')); $statement->addClause($where); $this->assertEquals('DELETE FROM tbl WHERE username IS NOT NULL', QueryAssembler::stringify($statement)); $where->addPredicate((new LikePredicate())->setField('name')->setExpression(EndsWithExpression::create('Joh'))); $this->assertEquals('DELETE FROM tbl ' . 'WHERE username IS NOT NULL AND name LIKE "%Joh"', QueryAssembler::stringify($statement)); }