63 lines
1.3 KiB
PHP
63 lines
1.3 KiB
PHP
<?php
|
|
namespace Incoviba\Common\Define\Query;
|
|
|
|
use Incoviba\Common\Define;
|
|
|
|
interface Select extends Define\Query
|
|
{
|
|
/**
|
|
* @param string|array $expressions
|
|
* @return Select
|
|
*/
|
|
public function columns(string|array $expressions): Select;
|
|
|
|
/**
|
|
* @param string $table
|
|
* @return Select
|
|
*/
|
|
public function from(string $table): Select;
|
|
|
|
/**
|
|
* @param string|array $joins
|
|
* @return Select
|
|
*/
|
|
public function joined(string|array $joins): Select;
|
|
|
|
/**
|
|
* @param string|array $conditions
|
|
* @return Select
|
|
*/
|
|
public function where(string|array $conditions): Select;
|
|
|
|
/**
|
|
* @param string|array $grouping
|
|
* @return Select
|
|
*/
|
|
public function group(string|array $grouping): Select;
|
|
|
|
/**
|
|
* @param string|array $conditions
|
|
* @return Select
|
|
*/
|
|
public function having(string|array $conditions): Select;
|
|
|
|
/**
|
|
* @param string|array $sorting
|
|
* @return Select
|
|
*/
|
|
public function order(string|array $sorting): Select;
|
|
|
|
/**
|
|
* @param int $limit
|
|
* @param int|null $offset
|
|
* @return Select
|
|
*/
|
|
public function limit(int $limit, ?int $offset = null): Select;
|
|
|
|
/**
|
|
* @param int $offset
|
|
* @return Select
|
|
*/
|
|
public function offset(int $offset): Select;
|
|
}
|