class Query

Query builder.

Properties

protected Connection $connection Database connection.
protected HelperInterface $helper Query helper.
protected Compiler $compiler Query compiler.
protected mixed $table Database table.
protected bool $distinct Select distinct?
protected array $setOperations Set operations.
protected array $columns Columns from which we are fetching data.
protected array $wheres WHERE clauses.
protected array $joins JOIN clauses.
protected array $groupings GROUP BY clauses.
protected array $havings HAVING clauses.
protected array $orderings ORDER BY clauses.
protected int|null $limit Limit.
protected int|null $offset Offset.
protected bool|string|null $lock Lock.
protected string|null $prefix Prefix.
protected bool $inSubqueryContext Is the query in subquery context?
static protected PaginationFactoryInterface $paginationFactory Pagination factory.

Methods

__construct(Connection $connection)

Constructor.

__clone()

Create a fresh compiler instance when we clone the query.

newInstance()

Returns a new query builder instance.

inSubqueryContext()

Sets the query to subquery context.

static 
setPaginationFactory(PaginationFactoryInterface|Closure $factory)

Sets the pagination factory.

getPaginationFactory()

Gets the pagination factory.

getConnection()

Returns the connection instance.

getCompiler()

Returns query compiler instance.

array
getSetOperations()

Returns the set operations.

mixed
getTable()

Returns the database table.

bool
isDistinct()

Is it a distict select?

array
getColumns()

Returns the columns from which we are fetching data.

array
getWheres()

Returns WHERE clauses.

array
getJoins()

Returns JOIN clauses.

array
getGroupings()

Returns GROUP BY clauses.

array
getHavings()

Returns HAVING clauses.

array
getOrderings()

Returns ORDER BY clauses.

int|null
getLimit()

Returns the limit.

int|null
getOffset()

Returns the offset.

bool|string|null
getLock()

Returns the lock.

string|null
getPrefix()

Returns the prefix.

setOperation(Closure|Query|Subquery $query, string $operation)

Adds a set operation.

union(Closure|Query|Subquery $query)

Adds a UNION operation.

unionAll(Closure|Query|Subquery $query)

Adds a UNION ALL operation.

intersect(Closure|Query|Subquery $query)

Adds a INTERSECT operation.

intersectAll(Closure|Query|Subquery $query)

Adds a INTERSECT ALL operation.

except(Closure|Query|Subquery $query)

Adds a EXCEPT operation.

exceptAll(Closure|Query|Subquery $query)

Adds a EXCEPT ALL operation.

table(string|Closure|Subquery|Raw $table)

Sets table we want to query.

from(string|Closure|Subquery|Raw $table)

Alias of Query::table().

into(string|Closure|Subquery|Raw $table)

Alias of Query::table().

select(array $columns)

Sets the columns we want to select.

distinct()

Select distinct?

where(string|array|Closure $column, string|null $operator = null, mixed $value = null, string $separator = 'AND')

Adds a WHERE clause.

whereRaw(string|array $column, string|array|null $operator = null, string|null $raw = null, string $separator = 'AND')

Adds a raw WHERE clause.

orWhere(string|array|Closure $column, string|null $operator = null, mixed $value = null)

Adds a OR WHERE clause.

orWhereRaw(string|array $column, string|array|null $operator = null, string|null $raw = null)

Adds a raw OR WHERE clause.

between(string $column, mixed $value1, mixed $value2, string $separator = 'AND', bool $not = false)

Adds a BETWEEN clause.

orBetween(string $column, mixed $value1, mixed $value2)

Adds a OR BETWEEN clause.

notBetween(string $column, mixed $value1, mixed $value2)

Adds a NOT BETWEEN clause.

orNotBetween(string $column, mixed $value1, mixed $value2)

Adds a OR NOT BETWEEN clause.

in(string $column, array|Raw|Closure|Subquery $values, string $separator = 'AND', bool $not = false)

Adds a IN clause.

orIn(string $column, mixed $values)

Adds a OR IN clause.

notIn(string $column, mixed $values)

Adds a NOT IN clause.

orNotIn(string $column, mixed $values)

Adds a OR NOT IN clause.

isNull(mixed $column, string $separator = 'AND', bool $not = false)

Adds a IS NULL clause.

orIsNull(mixed $column)

Adds a OR IS NULL clause.

isNotNull(mixed $column)

Adds a IS NOT NULL clause.

orIsNotNull(mixed $column)

Adds a OR IS NOT NULL clause.

exists(Closure|Subquery $query, string $separator = 'AND', bool $not = false)

Adds a EXISTS clause.

orExists(Closure|Subquery $query)

Adds a OR EXISTS clause.

notExists(Closure|Subquery $query)

Adds a NOT EXISTS clause.

orNotExists(Closure|Subquery $query)

Adds a OR NOT EXISTS clause.

join(string $table, string|Closure $column1 = null, string $operator = null, string $column2 = null, string $type = 'INNER', bool $raw = false)

Adds a JOIN clause.

joinRaw(string $table, string $column1, string $operator, string $raw, string $type = 'INNER')

Adds a raw JOIN clause.

leftJoin(string $table, string|Closure $column1 = null, string $operator = null, string $column2 = null)

Adds a LEFT OUTER JOIN clause.

leftJoinRaw(string $table, string $column1, string $operator, string $raw)

Adds a raw LEFT OUTER JOIN clause.

groupBy(string|array $columns)

Adds a GROUP BY clause.

having(string $column, string $operator, mixed $value, string $separator = 'AND')

Adds a HAVING clause.

havingRaw(string $raw, string $operator, mixed $value, string $separator = 'AND')

Adds a raw HAVING clause.

orHaving(string $column, string $operator, mixed $value)

Adds a OR HAVING clause.

orHavingRaw(string $raw, string $operator, mixed $value)

Adds a raw OR HAVING clause.

orderBy(string|array $columns, string $order = 'ASC')

Adds a ORDER BY clause.

orderByRaw(string $raw, string $order = 'ASC')

Adds a raw ORDER BY clause.

ascending(string|array $columns)

Adds an ascending ORDER BY clause.

ascendingRaw(string $raw)

Adds a raw ascending ORDER BY clause.

descending(string|array $columns)

Adds a descending ORDER BY clause.

descendingRaw(string $raw)

Adds a raw descending ORDER BY clause.

clearOrderings()

Clears the ordering clauses.

limit(int $limit)

Adds a LIMIT clause.

offset(int $offset)

Adds a OFFSET clause.

lock(bool|string $lock = true)

Enable lock.

sharedLock()

Enable shared lock.

prefix(string $prefix)

Adds a query prefix.

mixed
column(string $column = null)

Executes a SELECT query and returns the value of the chosen column of the first row of the result set.

array
columns(string $column = null)

Executes a SELECT query and returns an array containing the values of the indicated 0-indexed column.

array
pairs(string $key, string $value)

Executes a SELECT query and returns an array where the first column is used as keys and the second as values.

mixed
fetchFirst(mixed ...$fetchMode)

Executes a SELECT query and returns the first row of the result set.

mixed
first()

Executes a SELECT query and returns the first row of the result set.

createResultSet(array $results)

Creates a result set.

array|ResultSet
fetchAll(bool $returnResultSet, mixed ...$fetchMode)

Executes a SELECT query and returns an array containing all of the result set rows.

all()

Executes a SELECT query and returns an array containing all of the result set rows.

fetchYield(mixed ...$fetchMode)

Executes a SELECT query and returns a generator that lets you iterate over the results.

yield()

Executes a SELECT query and returns a generator that lets you iterate over the results.

int
paginationCount()

Returns the number of records that the query will return.

paginate(int|null $itemsPerPage = null, array $options = [])

Paginates the results using a pagination instance.

batch(Closure $processor, int $batchSize = 1000, int $offsetStart = 0, int $offsetEnd = null)

Fetches data in batches and passes them to the processor closure.

mixed
aggregate(string $function, string|array $column)

Sets the selected column of the query to the chosen aggreate.

int
min(string $column)

Returns the minimum value for the chosen column.

int
max(string $column)

Returns the maximum value for the chosen column.

int
sum(string $column)

Returns sum of all the values in the chosen column.

float
avg(string $column)

Returns the average value for the chosen column.

int
count(string $column = '*')

Returns the number of rows.

int
countDistinct(string|array $column)

Returns the number of distinct values of the chosen column.

bool
insert(array $values = [])

Inserts data into the chosen table.

int|bool
insertAndGetId(array $values, string $primaryKey = 'id')

Inserts data into the chosen table and returns the auto increment id.

int
update(array $values)

Updates data from the chosen table.

int
increment(string $column, int $increment = 1)

Increments column value.

int
decrement(string $column, int $decrement = 1)

Decrements column value.

int
delete()

Deletes data from the chosen table.

Details

at line 157
__construct(Connection $connection)

Constructor.

Parameters

Connection $connection Database connection

at line 169
__clone()

Create a fresh compiler instance when we clone the query.

at line 179
Query newInstance()

Returns a new query builder instance.

Return Value

Query

at line 189
Query inSubqueryContext()

Sets the query to subquery context.

Return Value

Query

at line 201
static setPaginationFactory(PaginationFactoryInterface|Closure $factory)

Sets the pagination factory.

Parameters

PaginationFactoryInterface|Closure $factory Pagination factory

at line 211
static PaginationFactoryInterface getPaginationFactory()

Gets the pagination factory.

at line 228
Connection getConnection()

Returns the connection instance.

Return Value

Connection

at line 238
Compiler getCompiler()

Returns query compiler instance.

Return Value

Compiler

at line 248
array getSetOperations()

Returns the set operations.

Return Value

array

at line 258
mixed getTable()

Returns the database table.

Return Value

mixed

at line 268
bool isDistinct()

Is it a distict select?

Return Value

bool

at line 278
array getColumns()

Returns the columns from which we are fetching data.

Return Value

array

at line 288
array getWheres()

Returns WHERE clauses.

Return Value

array

at line 298
array getJoins()

Returns JOIN clauses.

Return Value

array

at line 308
array getGroupings()

Returns GROUP BY clauses.

Return Value

array

at line 318
array getHavings()

Returns HAVING clauses.

Return Value

array

at line 328
array getOrderings()

Returns ORDER BY clauses.

Return Value

array

at line 338
int|null getLimit()

Returns the limit.

Return Value

int|null

at line 348
int|null getOffset()

Returns the offset.

Return Value

int|null

at line 358
bool|string|null getLock()

Returns the lock.

Return Value

bool|string|null

at line 368
string|null getPrefix()

Returns the prefix.

Return Value

string|null

at line 380
protected Query setOperation(Closure|Query|Subquery $query, string $operation)

Adds a set operation.

Parameters

Closure|Query|Subquery $query Query
string $operation Operation

Return Value

Query

at line 402
Query union(Closure|Query|Subquery $query)

Adds a UNION operation.

Parameters

Closure|Query|Subquery $query Query

Return Value

Query

at line 413
Query unionAll(Closure|Query|Subquery $query)

Adds a UNION ALL operation.

Parameters

Closure|Query|Subquery $query Query

Return Value

Query

at line 424
Query intersect(Closure|Query|Subquery $query)

Adds a INTERSECT operation.

Parameters

Closure|Query|Subquery $query Query

Return Value

Query

at line 435
Query intersectAll(Closure|Query|Subquery $query)

Adds a INTERSECT ALL operation.

Parameters

Closure|Query|Subquery $query Query

Return Value

Query

at line 446
Query except(Closure|Query|Subquery $query)

Adds a EXCEPT operation.

Parameters

Closure|Query|Subquery $query Query

Return Value

Query

at line 457
Query exceptAll(Closure|Query|Subquery $query)

Adds a EXCEPT ALL operation.

Parameters

Closure|Query|Subquery $query Query

Return Value

Query

at line 468
Query table(string|Closure|Subquery|Raw $table)

Sets table we want to query.

Parameters

string|Closure|Subquery|Raw $table Database table or subquery

Return Value

Query

at line 486
Query from(string|Closure|Subquery|Raw $table)

Alias of Query::table().

Parameters

string|Closure|Subquery|Raw $table Database table or subquery

Return Value

Query

at line 497
Query into(string|Closure|Subquery|Raw $table)

Alias of Query::table().

Parameters

string|Closure|Subquery|Raw $table Database table or subquery

Return Value

Query

at line 508
Query select(array $columns)

Sets the columns we want to select.

Parameters

array $columns Array of columns we want to select from

Return Value

Query

at line 520
Query distinct()

Select distinct?

Return Value

Query

at line 536
Query where(string|array|Closure $column, string|null $operator = null, mixed $value = null, string $separator = 'AND')

Adds a WHERE clause.

Parameters

string|array|Closure $column Column name, an array of column names or closure
string|null $operator Operator
mixed $value Value
string $separator Clause separator

Return Value

Query

at line 575
Query whereRaw(string|array $column, string|array|null $operator = null, string|null $raw = null, string $separator = 'AND')

Adds a raw WHERE clause.

Parameters

string|array $column Column name, an array of column names or raw SQL
string|array|null $operator Operator or parameters
string|null $raw Raw SQL
string $separator Clause separator

Return Value

Query

at line 600
Query orWhere(string|array|Closure $column, string|null $operator = null, mixed $value = null)

Adds a OR WHERE clause.

Parameters

string|array|Closure $column Column name, an array of column names or closure
string|null $operator Operator
mixed $value Value

Return Value

Query

at line 613
Query orWhereRaw(string|array $column, string|array|null $operator = null, string|null $raw = null)

Adds a raw OR WHERE clause.

Parameters

string|array $column Column name, and array of column names or raw SQL
string|array|null $operator Operator or parameters
string|null $raw Raw SQL

Return Value

Query

at line 628
Query between(string $column, mixed $value1, mixed $value2, string $separator = 'AND', bool $not = false)

Adds a BETWEEN clause.

Parameters

string $column Column name
mixed $value1 First value
mixed $value2 Second value
string $separator Clause separator
bool $not Not between?

Return Value

Query

at line 651
Query orBetween(string $column, mixed $value1, mixed $value2)

Adds a OR BETWEEN clause.

Parameters

string $column Column name
mixed $value1 First value
mixed $value2 Second value

Return Value

Query

at line 664
Query notBetween(string $column, mixed $value1, mixed $value2)

Adds a NOT BETWEEN clause.

Parameters

string $column Column name
mixed $value1 First value
mixed $value2 Second value

Return Value

Query

at line 677
Query orNotBetween(string $column, mixed $value1, mixed $value2)

Adds a OR NOT BETWEEN clause.

Parameters

string $column Column name
mixed $value1 First value
mixed $value2 Second value

Return Value

Query

at line 691
Query in(string $column, array|Raw|Closure|Subquery $values, string $separator = 'AND', bool $not = false)

Adds a IN clause.

Parameters

string $column Column name
array|Raw|Closure|Subquery $values Array of values or Subquery
string $separator Clause separator
bool $not Not in?

Return Value

Query

at line 721
Query orIn(string $column, mixed $values)

Adds a OR IN clause.

Parameters

string $column Column name
mixed $values Array of values or Subquery

Return Value

Query

at line 733
Query notIn(string $column, mixed $values)

Adds a NOT IN clause.

Parameters

string $column Column name
mixed $values Array of values or Subquery

Return Value

Query

at line 745
Query orNotIn(string $column, mixed $values)

Adds a OR NOT IN clause.

Parameters

string $column Column name
mixed $values Array of values or Subquery

Return Value

Query

at line 758
Query isNull(mixed $column, string $separator = 'AND', bool $not = false)

Adds a IS NULL clause.

Parameters

mixed $column Column name
string $separator Clause separator
bool $not Not in?

Return Value

Query

at line 777
Query orIsNull(mixed $column)

Adds a OR IS NULL clause.

Parameters

mixed $column Column name

Return Value

Query

at line 788
Query isNotNull(mixed $column)

Adds a IS NOT NULL clause.

Parameters

mixed $column Column name

Return Value

Query

at line 799
Query orIsNotNull(mixed $column)

Adds a OR IS NOT NULL clause.

Parameters

mixed $column Column name

Return Value

Query

at line 812
Query exists(Closure|Subquery $query, string $separator = 'AND', bool $not = false)

Adds a EXISTS clause.

Parameters

Closure|Subquery $query Subquery
string $separator Clause separator
bool $not Not exists?

Return Value

Query

at line 836
Query orExists(Closure|Subquery $query)

Adds a OR EXISTS clause.

Parameters

Closure|Subquery $query Subquery

Return Value

Query

at line 847
Query notExists(Closure|Subquery $query)

Adds a NOT EXISTS clause.

Parameters

Closure|Subquery $query Subquery

Return Value

Query

at line 858
Query orNotExists(Closure|Subquery $query)

Adds a OR NOT EXISTS clause.

Parameters

Closure|Subquery $query Subquery

Return Value

Query

at line 874
Query join(string $table, string|Closure $column1 = null, string $operator = null, string $column2 = null, string $type = 'INNER', bool $raw = false)

Adds a JOIN clause.

Parameters

string $table Table name
string|Closure $column1 Column name or closure
string $operator Operator
string $column2 Column name
string $type Join type
bool $raw Raw join?

Return Value

Query

at line 909
Query joinRaw(string $table, string $column1, string $operator, string $raw, string $type = 'INNER')

Adds a raw JOIN clause.

Parameters

string $table Table name
string $column1 Column name or closure
string $operator Operator
string $raw Raw SQL
string $type Join type

Return Value

Query

at line 923
Query leftJoin(string $table, string|Closure $column1 = null, string $operator = null, string $column2 = null)

Adds a LEFT OUTER JOIN clause.

Parameters

string $table Table name
string|Closure $column1 Column name or closure
string $operator Operator
string $column2 Column name

Return Value

Query

at line 937
Query leftJoinRaw(string $table, string $column1, string $operator, string $raw)

Adds a raw LEFT OUTER JOIN clause.

Parameters

string $table Table name
string $column1 Column name or closure
string $operator Operator
string $raw Raw SQL

Return Value

Query

at line 948
Query groupBy(string|array $columns)

Adds a GROUP BY clause.

Parameters

string|array $columns Column name or array of column names

Return Value

Query

at line 964
Query having(string $column, string $operator, mixed $value, string $separator = 'AND')

Adds a HAVING clause.

Parameters

string $column Column name
string $operator Operator
mixed $value Value
string $separator Clause separator

Return Value

Query

at line 986
Query havingRaw(string $raw, string $operator, mixed $value, string $separator = 'AND')

Adds a raw HAVING clause.

Parameters

string $raw Raw SQL
string $operator Operator
mixed $value Value
string $separator Clause separator

Return Value

Query

at line 999
Query orHaving(string $column, string $operator, mixed $value)

Adds a OR HAVING clause.

Parameters

string $column Column name
string $operator Operator
mixed $value Value

Return Value

Query

at line 1012
Query orHavingRaw(string $raw, string $operator, mixed $value)

Adds a raw OR HAVING clause.

Parameters

string $raw Raw SQL
string $operator Operator
mixed $value Value

Return Value

Query

at line 1024
Query orderBy(string|array $columns, string $order = 'ASC')

Adds a ORDER BY clause.

Parameters

string|array $columns Column name or array of column names
string $order Sorting order

Return Value

Query

at line 1042
Query orderByRaw(string $raw, string $order = 'ASC')

Adds a raw ORDER BY clause.

Parameters

string $raw Raw SQL
string $order Sorting order

Return Value

Query

at line 1053
Query ascending(string|array $columns)

Adds an ascending ORDER BY clause.

Parameters

string|array $columns Column name or array of column names

Return Value

Query

at line 1064
Query ascendingRaw(string $raw)

Adds a raw ascending ORDER BY clause.

Parameters

string $raw Raw SQL

Return Value

Query

at line 1075
Query descending(string|array $columns)

Adds a descending ORDER BY clause.

Parameters

string|array $columns Column name or array of column names

Return Value

Query

at line 1086
Query descendingRaw(string $raw)

Adds a raw descending ORDER BY clause.

Parameters

string $raw Raw SQL

Return Value

Query

at line 1096
Query clearOrderings()

Clears the ordering clauses.

Return Value

Query

at line 1109
Query limit(int $limit)

Adds a LIMIT clause.

Parameters

int $limit Limit

Return Value

Query

at line 1122
Query offset(int $offset)

Adds a OFFSET clause.

Parameters

int $offset Offset

Return Value

Query

at line 1135
Query lock(bool|string $lock = true)

Enable lock.

Parameters

bool|string $lock TRUE for exclusive, FALSE for shared and string for custom

Return Value

Query

at line 1147
Query sharedLock()

Enable shared lock.

Return Value

Query

at line 1158
Query prefix(string $prefix)

Adds a query prefix.

Parameters

string $prefix Prefix

Return Value

Query

at line 1171
mixed column(string $column = null)

Executes a SELECT query and returns the value of the chosen column of the first row of the result set.

Parameters

string $column The column to select

Return Value

mixed

at line 1189
array columns(string $column = null)

Executes a SELECT query and returns an array containing the values of the indicated 0-indexed column.

Parameters

string $column The column to select

Return Value

array

at line 1208
array pairs(string $key, string $value)

Executes a SELECT query and returns an array where the first column is used as keys and the second as values.

Parameters

string $key The column to use as keys
string $value The column to use as values

Return Value

array

at line 1223
protected mixed fetchFirst(mixed ...$fetchMode)

Executes a SELECT query and returns the first row of the result set.

Parameters

mixed ...$fetchMode Fetch mode

Return Value

mixed

at line 1235
mixed first()

Executes a SELECT query and returns the first row of the result set.

Return Value

mixed

at line 1246
protected ResultSet createResultSet(array $results)

Creates a result set.

Parameters

array $results Results

Return Value

ResultSet

at line 1258
protected array|ResultSet fetchAll(bool $returnResultSet, mixed ...$fetchMode)

Executes a SELECT query and returns an array containing all of the result set rows.

Parameters

bool $returnResultSet Return result set?
mixed ...$fetchMode Fetch mode

Return Value

array|ResultSet

at line 1272
ResultSet all()

Executes a SELECT query and returns an array containing all of the result set rows.

Return Value

ResultSet

at line 1283
protected Generator fetchYield(mixed ...$fetchMode)

Executes a SELECT query and returns a generator that lets you iterate over the results.

Parameters

mixed ...$fetchMode Fetch mode

Return Value

Generator

at line 1295
Generator yield()

Executes a SELECT query and returns a generator that lets you iterate over the results.

Return Value

Generator

at line 1305
protected int paginationCount()

Returns the number of records that the query will return.

Return Value

int

at line 1324
ResultSet paginate(int|null $itemsPerPage = null, array $options = [])

Paginates the results using a pagination instance.

Parameters

int|null $itemsPerPage Number of items per page
array $options Pagination options

Return Value

ResultSet

at line 1352
batch(Closure $processor, int $batchSize = 1000, int $offsetStart = 0, int $offsetEnd = null)

Fetches data in batches and passes them to the processor closure.

Parameters

Closure $processor Closure that processes the results
int $batchSize Batch size
int $offsetStart Offset start
int $offsetEnd Offset end

at line 1393
protected mixed aggregate(string $function, string|array $column)

Sets the selected column of the query to the chosen aggreate.

Executes the query and returns the result if not in subquery context.

Parameters

string $function Aggregate function
string|array $column Column name or array of column names

Return Value

mixed

at line 1411
int min(string $column)

Returns the minimum value for the chosen column.

Parameters

string $column Column name

Return Value

int

at line 1422
int max(string $column)

Returns the maximum value for the chosen column.

Parameters

string $column Column name

Return Value

int

at line 1433
int sum(string $column)

Returns sum of all the values in the chosen column.

Parameters

string $column Column name

Return Value

int

at line 1444
float avg(string $column)

Returns the average value for the chosen column.

Parameters

string $column Column name

Return Value

float

at line 1455
int count(string $column = '*')

Returns the number of rows.

Parameters

string $column Column name

Return Value

int

at line 1466
int countDistinct(string|array $column)

Returns the number of distinct values of the chosen column.

Parameters

string|array $column Column name or array of column names

Return Value

int

at line 1477
bool insert(array $values = [])

Inserts data into the chosen table.

Parameters

array $values Associative array of column values

Return Value

bool

at line 1491
int|bool insertAndGetId(array $values, string $primaryKey = 'id')

Inserts data into the chosen table and returns the auto increment id.

Parameters

array $values Associative array of column values
string $primaryKey Primary key

Return Value

int|bool

at line 1502
int update(array $values)

Updates data from the chosen table.

Parameters

array $values Associative array of column values

Return Value

int

at line 1516
int increment(string $column, int $increment = 1)

Increments column value.

Parameters

string $column Column name
int $increment Increment value

Return Value

int

at line 1528
int decrement(string $column, int $decrement = 1)

Decrements column value.

Parameters

string $column Column name
int $decrement Decrement value

Return Value

int

at line 1538
int delete()

Deletes data from the chosen table.

Return Value

int