PgsqlQuery

扩展 PdoQuery

PDO PostgreSQL 查询构建类。

1.0

属性只读 QueryElement

在 "FOR UPDATE" 锁中使用的 FOR UPDATE 元素

在 "FOR SHARE" 锁中使用的 FOR SHARE 元素

在 "FOR SHARE" 和 "FOR UPDATE" 锁中使用的 NOWAIT 元素

INSERT INTO 的 RETURNING 元素

Joomla 框架

方法

__clone

提供基本复制支持的方法。

__clone() : 
继承

推送到此类的数据的任何对象都应该有自己的 __clone() 实现。此方法不支持复制多维数组中的对象。

1.0

响应

void

__construct

类构造函数。

__construct(\Joomla\Database\DatabaseInterface db = null) : 
继承

1.0

参数

db

DatabaseInterface|null数据库驱动程序。

响应

混合

__get

获取受保护变量值的魔法函数

__get( name) : 
继承

1.0

参数

name

string变量的名称。

响应

混合

__toString

将查询转换为字符串的魔法函数,仅适用于 PostgreSQL 特定查询

__toString() : 
继承

2.0.0

响应

string已完成的查询。

alias

为当前查询添加别名。

alias( alias) : 
继承

用法:$query->select('*')->from('#__a')->alias('subquery');

2.0.0

参数

alias

string用于 JDatabaseQuery 的别名。

响应

$this

andWhere

使用 AND 和单个条件或条件数组扩展 WHERE 子句。

andWhere( conditions,  glue = 'OR') : 
继承

用法:$query->where(array('a = 1', 'b = 2'))->andWhere(array('c = 3', 'd = 4')); 将生成:WHERE ((a = 1 AND b = 2) AND (c = 3 OR d = 4)

1.3.0

参数

conditions

mixedWHERE 条件的字符串或数组。

glue

string用于连接条件的粘合剂。默认值为 OR。

响应

$this

bind

在查询执行之前,将变量添加到将绑定到准备好的 SQL 语句的内部数组中的方法。

bind(array|string|int key,  &value, array|string dataType = ParameterType::STRING,  length, mixed||string|int driverOptions = []) : 
继承

1.5.0

抛出

InvalidArgumentException

参数

key

array<string|int, mixed>|string|int将在您的 SQL 查询中用于引用值的键。通常采用 ':key' 的形式,但也可以是整数。

value

mixed将绑定的值。它可以是数组,在这种情况下,它必须与 $key 的长度相同;该值通过引用传递,以支持输出参数(例如存储过程可能存在的参数)。

dataType

array<string|int, mixed>|string对应于 SQL 数据类型的常量。它可以是数组,在这种情况下,它必须与 $key 的长度相同

length

int变量的长度。通常需要用于输出参数。

driverOptions

array<string|int, mixed>要使用的可选驱动程序选项。

响应

$this

bindArray

绑定一组值并返回一组准备好的参数名称。

bindArray(mixed||string|int values, array|string dataType = ParameterType::INTEGER) : mixed||string|int
继承

注意,所有值必须是相同的数据类型。

用法:$query->where('column in (' . implode(',', $query->bindArray($keyValues, $dataType)) . ')');

2.0.0

参数

values

array<string|int, mixed>要绑定的值

dataType

array<string|int, mixed>|string对应于 SQL 数据类型的常量。它可以是数组,在这种情况下,它必须与 $key 的长度相同

响应

array<string|int, mixed>包含参数名称的数组

call

在查询的 CALL 子句中添加单个列或列数组。

call( columns) : 
继承

用法:$query->call('a.')->call('b.id'); $query->call(array('a.', 'b.id'));

1.0

抛出

QueryTypeAlreadyDefinedException如果查询类型已定义

参数

columns

mixed字符串或字段名称数组。

响应

$this

castAs

将值转换为字符。

castAs( type,  value, string length = null) : 
继承

确保在传递给方法之前对值进行正确引用。

用法:$query->select($query->castAs('CHAR', 'a'));

1.0

参数

type

string要转换为的字符串类型。

value

string要转换为字符的值。

length

string|null要转换为字符的值。

响应

string将值转换为字符类型的 SQL 语句。

castAsChar

将值转换为字符。

castAsChar( value,  length = null) : 

确保在传递给方法之前对值进行正确引用。

用法:$query->select($query->castAsChar('a')); $query->select($query->castAsChar('a', 40));

1.8.0

参数

value

string要转换为字符的值。

length

string字符的长度。

响应

string返回转换后的值。

charLength

获取字符串中的字符数。

charLength( field, string|null operator = null, string|null condition = null) : 
继承

注意,使用 'length' 查找字符串中的字节数。

用法:$query->select($query->charLength('a'));

1.0

参数

field

string一个值。

operator

string|nullcharLength 整数值和 $condition 之间的比较运算符

condition

string|null要与 charLength 进行比较的整数值

响应

string所需的 char length 调用。

clear

从查询或查询的特定子句中清除数据。

clear( clause = null) : 
继承

2.0.0

参数

clause

string可选地,要清除的子句的名称,或清除整个查询。

响应

$this

columns

添加将在 INSERT INTO 语句中使用的列或列名称数组。

columns(array|string columns) : 
继承

1.0

参数

columns

array<string|int, mixed>|string列名或列名称数组。

响应

$this

concatenate

连接列名或值的数组。

concatenate(string||string|int values, string|null separator = null) : 
继承

用法:$query->select($query->concatenate(array('a', 'b')));

2.0.0

参数

values

array<string|int, string>要连接的值数组。

separator

string|null作为每个值之间放置的分隔符。

响应

string连接的值。

currentTimestamp

获取当前日期和时间。

currentTimestamp() : 
继承

2.0.0

响应

string在查询中返回的字符串以获取

dateAdd

添加到当前日期和时间。

dateAdd( date,  interval,  datePart) : 
继承

用法:$query->select($query->dateAdd());

在时间间隔前加 -(负号)将导致使用减法。

2.0.0

link

参数

date

string要添加的日期的数据库引用字符串表示形式

interval

string相应单位数的字符串表示形式

datePart

string要执行加法运算的日期部分

响应

string包含相应日期加法 SQL 的字符串

dateFormat

返回符合数据库驱动程序的 PHP date() 函数的日期格式。

dateFormat() : 
继承

此方法用于在将查询对象传递给函数以进行修改时使用。如果您可以直接访问数据库对象,建议您直接使用 getDateFormat 方法。

1.0

抛出

RuntimeException

响应

string格式字符串。

day

用于获取从日期列中提取日期的字符串。

day( date) : 
继承

用法:$query->select($query->day($query->quoteName('dateColumn')));

2.0.0

参数

date

string包含要提取的日期的日期列。

响应

string返回从日期中提取日期的字符串。

delete

在查询的 DELETE 子句中添加表名。

delete( table = null) : 
继承

用法:$query->delete('#__a')->where('id = 1');

1.0

抛出

QueryTypeAlreadyDefinedException如果查询类型已定义

参数

table

string要从其中删除的表的名称。

响应

$this

dump

创建用于调试目的的查询的 HTML 格式转储。

dump() : 
继承 已弃用

用法:echo $query->dump();

1.0

已弃用

3.0 已弃用,没有替换

响应

string

e

escape 方法的别名

e( text,  extra = false) : 
继承

1.0

抛出

RuntimeException如果内部 db 属性不是有效的对象。

参数

text

string要转义的字符串。

extra

bool可选参数,提供额外的转义。

响应

string转义后的字符串。

escape

在 SQL 语句中使用时对字符串进行转义的方法。

escape( text,  extra = false) : 
继承

此方法用于在将查询对象传递给函数以进行修改时使用。如果您可以直接访问数据库对象,建议您直接使用 escape 方法。

注意,'e' 是此方法的别名,因为它在 DatabaseDriver 中。

1.0

抛出

RuntimeException如果内部 db 属性不是有效的对象。

参数

text

string要转义的字符串。

extra

bool可选参数,提供额外的转义。

响应

string转义后的字符串。

exec

在查询的 EXEC 子句中添加单个列或列数组。

exec(array|string columns) : 
继承

用法:$query->exec('a.')->exec('b.id'); $query->exec(array('a.', 'b.id'));

1.0

抛出

QueryTypeAlreadyDefinedException如果查询类型已定义

参数

columns

array<string|int, mixed>|string字符串或字段名称数组。

响应

$this

extendWhere

使用与当前 WHERE 子句中可能不同的逻辑运算符,使用单个条件或条件数组扩展 WHERE 子句。

extendWhere( outerGlue,  conditions,  innerGlue = 'AND') : 
继承

用法:$query->where(array('a = 1', 'b = 2'))->extendWhere('XOR', array('c = 3', 'd = 4')); 将生成:WHERE ((a = 1 AND b = 2) XOR (c = 3 AND d = 4)

1.3.0

参数

outerGlue

string用于将条件连接到当前 WHERE 条件的粘合剂。

conditions

mixedWHERE 条件的字符串或数组。

innerGlue

string用于连接条件的粘合剂。默认值为 AND。

响应

$this

findInSet

在像集合一样使用的 varchar 中查找值。

findInSet( value,  set) : 
继承

确保在传递给方法之前值是整数。

用法:$query->findInSet((int) $parent->id, 'a.assigned_cat_ids')

2.0.0

参数

value

string要搜索的值。

set

string值集。

响应

string驱动程序中 MySQL find_in_set() 函数的表示。

format

在格式字符串中查找和替换类似 sprintf 的标记。

format( format) : 
继承

每个标记采用以下形式之一:%% - 字面百分号。%[t] - 其中 [t] 是类型说明符。%[n]$[x] - 其中 [n] 是参数说明符,[t] 是类型说明符。

类型:a - 数字:替换文本被强制转换为数字类型,但不会被引用或转义。e - 转义:替换文本被传递给 $this->escape()。E - 转义(额外):替换文本被传递给 $this->escape(),第二个参数为 true。n - 名称引用:替换文本被传递给 $this->quoteName()。q - 引用:替换文本被传递给 $this->quote()。Q - 引用(不转义):替换文本被传递给 $this->quote(),第二个参数为 false。r - 原始:替换文本按原样使用。(请谨慎)

日期类型

  • 替换文本自动引用(使用大写字母表示名称引用)。
  • 替换文本应为日期格式的字符串或日期列的名称。y/Y - 年 m/M - 月 d/D - 日 h/H - 小时 i/I - 分钟 s/S - 秒

不变类型

  • 不接受参数。
  • 参数索引不递增。t - 替换文本是 $this->currentTimestamp() 的结果。z - 替换文本是 $this->nullDate(false) 的结果。Z - 替换文本是 $this->nullDate(true) 的结果。

用法:$query->format('SELECT %1$n FROM %2$n WHERE %3$n = %4$a', 'foo', '#__foo', 'bar', 1); 返回:SELECT foo FROM #__foo WHERE bar = 1

说明:参数说明符是可选的,但建议使用以提高清晰度。仅在使用时才递增用于未指定标记的参数索引。

1.0

参数

format

string格式化字符串。

响应

string返回根据格式化字符串生成的字符串。

forShare

在 select 的输出行上设置 FOR SHARE 锁

forShare( tableName,  glue = ',') : 
继承

2.0.0

参数

tableName

string要锁定的表。

glue

string用于连接条件的粘合剂。默认值为 ',' 。

响应

$this

forUpdate

在 select 的输出行上设置 FOR UPDATE 锁

forUpdate( tableName,  glue = ',') : 
继承

2.0.0

参数

tableName

string要锁定的表。

glue

string用于连接条件的粘合剂。默认值为 ',' 。

响应

$this

from

将表添加到查询的 FROM 子句中。

from(string|\Joomla\Database\DatabaseQuery table) : 
继承

用法:$query->select('')->from('#__a'); $query->select('')->from($subquery->alias('a'));

1.0

抛出

RuntimeException

参数

table

string|DatabaseQuery表的名称或带有别名的 DatabaseQuery 对象(或其子类)。

响应

$this

getBounded

当键为 null 时检索绑定参数数组并通过引用返回。如果提供了键,则返回该项。

getBounded( key = null) : 
继承

1.5.0

参数

key

mixed要检索的绑定变量键。

响应

混合

group

将分组列添加到查询的 GROUP 子句中。

group(array|string columns) : 
继承

用法:$query->group('id');

1.0

参数

columns

array<string|int, mixed>|string排序列的字符串或数组。

响应

$this

groupConcat

聚合函数,用于将输入值连接成一个字符串,并用分隔符分隔

groupConcat( expression,  separator = ',') : 
继承

用法:$query->groupConcat('id', ',');

2.0.0

参数

expression

string要应用连接的表达式,它可以是列名或复杂的 SQL 语句。

separator

string每个连接值的定界符

响应

string输入值连接成的字符串,用分隔符分隔

having

查询的 HAVING 子句的条件。

having(array|string conditions,  glue = 'AND') : 
继承

用法:$query->group('id')->having('COUNT(id) > 5');

1.0

参数

conditions

array<string|int, mixed>|string列的字符串或数组。

glue

string用于连接条件的粘合剂。默认值为 AND。

响应

$this

hour

用于获取一个字符串来从日期列中提取小时。

hour( date) : 
继承

用法:$query->select($query->hour($query->quoteName('dateColumn')));

2.0.0

参数

date

string包含要提取的小时的日期列。

响应

string返回从日期中提取小时的字符串。

innerJoin

向查询中添加 INNER JOIN 子句。

innerJoin( table,  condition = null) : 
继承

用法:$query->innerJoin('b', 'b.id = a.id')->innerJoin('c', 'c.id = b.id');

1.0

参数

table

string表的名称。

condition

string连接条件。

响应

$this

insert

将表名添加到查询的 INSERT 子句中。

insert( table,  incrementField = false) : 
继承

用法:$query->insert('#__a')->set('id = 1'); $query->insert('#__a')->columns('id, title')->values('1,2')->values('3,4'); $query->insert('#__a')->columns('id, title')->values(array('1,2', '3,4'));

1.0

抛出

QueryTypeAlreadyDefinedException如果查询类型已定义

参数

table

string要插入数据的表的名称。

incrementField

bool要自动递增的字段的名称。

响应

$this

isNullDatetime

生成一个 SQL 语句来检查列是否表示零或 null 日期时间。

isNullDatetime( column) : 
继承

用法:$query->where($query->isNullDatetime('modified_date'));

2.0.0

参数

column

string列名。

响应

string

join

向查询中添加 JOIN 子句。

join( type,  table,  condition = null) : 
继承

用法:$query->join('INNER', 'b', 'b.id = a.id);

1.0

参数

type

string连接类型。此字符串将被附加到 JOIN 关键字之前。

table

string表的名称。

condition

string连接条件。

响应

$this

leftJoin

向查询中添加 LEFT JOIN 子句。

leftJoin( table,  condition = null) : 
继承

用法:$query->leftJoin('b', 'b.id = a.id')->leftJoin('c', 'c.id = b.id');

1.0

参数

table

string表的名称。

condition

string连接条件。

响应

$this

length

获取字符串的字节长度。

length( value) : 
继承

注意,使用 'charLength' 查找字符串中的字符数。

用法:query->where($query->length('a').' > 3');

1.0

参数

value

string要测量的字符串。

响应

string

limit

将 LIMIT 子句设置为查询

limit( limit) : 
继承

2.0.0

参数

limit

int要返回的行数

响应

$this

merge

通过一组运算符之一将 select 语句组合到当前查询中。

merge( name, \Joomla\Database\DatabaseQuery|string query) : 
继承

运算符:UNION、UNION ALL、EXCEPT 或 INTERSECT。

2.0.0

参数

name

string带括号的集合运算符的名称。

query

DatabaseQuery|stringDatabaseQuery 对象或字符串。

响应

$this

minute

用于获取一个字符串来从日期列中提取分钟。

minute( date) : 
继承

用法:$query->select($query->minute($query->quoteName('dateColumn')));

2.0.0

参数

date

string包含要提取的分钟的日期列。

响应

string返回从日期中提取分钟的字符串。

month

用于获取一个字符串来从日期列中提取月份。

month( date) : 
继承

用法:$query->select($query->month($query->quoteName('dateColumn')));

2.0.0

参数

date

string包含要提取的月份的日期列。

响应

string返回从日期中提取月份的字符串。

noWait

在 select 的输出行上设置 NOWAIT 锁

noWait() : 
继承

2.0.0

响应

$this

nullDate

获取数据库驱动程序的日期时间戳的 null 或零表示形式。

nullDate( quoted = true) : 
继承

此方法用于在将查询对象传递给函数以进行修改时使用。如果您直接访问数据库对象,建议您直接使用 nullDate 方法。

用法:$query->where('modified_date <> '.$query->nullDate());

1.0

抛出

RuntimeException

参数

quoted

bool可选地将 null 日期包装在数据库引号中(默认情况下为 true)。

响应

string日期时间戳的 null 或零表示形式。

offset

将 OFFSET 子句设置为查询

offset( offset) : 
继承

2.0.0

参数

offset

int用于跳过行的整数

响应

$this

order

向查询的 ORDER 子句中添加排序列。

order(array|string columns) : 
继承

用法:$query->order('foo')->order('bar'); $query->order(array('foo','bar'));

1.0

参数

columns

array<string|int, mixed>|string排序列的字符串或数组。

响应

$this

orWhere

使用 OR 和单个条件或条件数组扩展 WHERE 子句。

orWhere( conditions,  glue = 'AND') : 
继承

用法:$query->where(array('a = 1', 'b = 2'))->orWhere(array('c = 3', 'd = 4')); 将生成:WHERE ((a = 1 AND b = 2) OR (c = 3 AND d = 4)

1.3.0

参数

conditions

mixedWHERE 条件的字符串或数组。

glue

string用于连接条件的粘合剂。默认值为 AND。

响应

$this

outerJoin

向查询中添加 OUTER JOIN 子句。

outerJoin( table,  condition = null) : 
继承

用法:$query->outerJoin('b', 'b.id = a.id')->leftJoin('c', 'c.id = b.id');

1.0

参数

table

string表的名称。

condition

string连接条件。

响应

$this

processLimit

一种方法,用于使用必要的添加来修改以字符串格式存在的查询,以使查询限制为特定数量的结果,或从特定偏移量开始。

processLimit( query,  limit,  offset) : 
继承

2.0.0

参数

query

string以字符串格式存在的查询

limit

int结果集的限制

offset

int结果集的偏移量

响应

string

q

quote 方法的别名

q(array|string text,  escape = true) : 
继承

1.0

抛出

RuntimeException如果内部 db 属性不是有效的对象。

参数

text

array<string|int, mixed>|string要引用的字符串或字符串数组。

escape

boolTrue(默认)表示转义字符串,false 表示保持字符串不变。

响应

string引用的输入字符串。

qn

quoteName 方法的别名

qn(array|string name, array|string as = null) : array|string
继承

1.0

抛出

RuntimeException如果内部 db 属性不是有效的对象。

参数

name

array<string|int, mixed>|string要包装在引号中的标识符名称,或要包装在引号中的标识符名称数组。每种类型都支持点符号名称。

as

array<string|int, mixed>|string与 $name 关联的 AS 查询部分。它可以是字符串或数组,在后一种情况下,它必须与 $name 的长度相同;如果是 null,则字符串或数组元素将没有 AS 部分。

响应

array<string|int, mixed>|string引号包装的名称,与 $name 的类型相同。

querySet

将单个查询设置为查询集。

querySet(\Joomla\Database\DatabaseQuery query) : 
继承

在此类型的 DatabaseQuery 上,您可以使用 union()、unionAll()、order() 和 setLimit()

用法:$query->querySet($query2->select('name')->from('#__foo')->order('id DESC')->setLimit(1)) ->unionAll($query3->select('name')->from('#__foo')->order('id')->setLimit(1)) ->order('name') ->setLimit(1)

2.0.0

参数

query

DatabaseQueryDatabaseQuery 对象或字符串。

响应

$this

quote

一种方法,用于将字符串引用并可选地转义为数据库插入数据库所需的格式。

quote(array|string text,  escape = true) : 
继承

此方法用于在将查询对象传递给函数以进行修改时使用。如果您直接访问数据库对象,建议您直接使用 quote 方法。

请注意,'q' 是此方法的别名,因为它在 DatabaseDriver 中。

用法:$query->quote('fulltext'); $query->q('fulltext'); $query->q(array('option', 'fulltext'));

1.0

抛出

RuntimeException如果内部 db 属性不是有效的对象。

参数

text

array<string|int, mixed>|string要引用的字符串或字符串数组。

escape

boolTrue(默认)表示转义字符串,false 表示保持字符串不变。

响应

string引用的输入字符串。

quoteName

将 SQL 语句标识符名称(例如列名、表名或数据库名)包装在引号中,以防止注入风险和保留字冲突。

quoteName(array|string name, array|string as = null) : array|string
继承

此方法用于在将查询对象传递给函数以进行修改时使用。如果您直接访问数据库对象,建议您直接使用 quoteName 方法。

请注意,'qn' 是此方法的别名,因为它在 DatabaseDriver 中。

用法:$query->quoteName('#__a'); $query->qn('#__a');

1.0

抛出

RuntimeException如果内部 db 属性不是有效的对象。

参数

name

array<string|int, mixed>|string要包装在引号中的标识符名称,或要包装在引号中的标识符名称数组。每种类型都支持点符号名称。

as

array<string|int, mixed>|string与 $name 关联的 AS 查询部分。它可以是字符串或数组,在后一种情况下,它必须与 $name 的长度相同;如果是 null,则字符串或数组元素将没有 AS 部分。

响应

array<string|int, mixed>|string引号包装的名称,与 $name 的类型相同。

rand

获取返回随机浮点数的函数

rand() : 
继承

用法:$query->rand();

2.0.0

响应

string

regexp

获取正则表达式运算符

regexp( value) : 
继承

用法:$query->where('field ' . $query->regexp($search));

2.0.0

参数

value

string正则表达式模式。

响应

string

returning

将 RETURNING 元素添加到 INSERT INTO 语句中。

returning( pkCol) : 
继承

2.0.0

参数

pkCol

mixed主键列的名称。

响应

$this

rightJoin

向查询中添加 RIGHT JOIN 子句。

rightJoin( table,  condition = null) : 
继承

用法:$query->rightJoin('b', 'b.id = a.id')->rightJoin('c', 'c.id = b.id');

1.0

参数

table

string表的名称。

condition

string连接条件。

响应

$this

second

用于获取一个字符串来从日期列中提取秒。

second( date) : 
继承

用法:$query->select($query->second($query->quoteName('dateColumn')));

2.0.0

参数

date

string包含要提取的秒的日期列。

响应

string返回从日期中提取秒的字符串。

select

将单个列或列数组添加到查询的 SELECT 子句中。

select(array|string columns) : 
继承

请注意,在构建查询时,您不能混合使用 insert、update、delete 和 select 方法调用。但是,可以在同一个查询中多次调用 select 方法。

用法:$query->select('a.')->select('b.id'); $query->select(array('a.', 'b.id'));

1.0

抛出

QueryTypeAlreadyDefinedException如果查询类型已定义

参数

columns

array<string|int, mixed>|string字符串或字段名称数组。

响应

$this

selectRowNumber

返回当前行的行号。

selectRowNumber( orderBy,  orderColumnAlias) : 
继承

用法:$query->select('id'); $query->selectRowNumber('ordering,publish_up DESC', 'new_ordering'); $query->from('#__content');

2.0.0

抛出

RuntimeException

参数

orderBy

string用于窗口函数的排序表达式。

orderColumnAlias

string新排序列的别名。

响应

$this

set

向查询的 SET 子句添加单个条件字符串或字符串数组。

set(array|string conditions,  glue = ',') : 
继承

用法:$query->set('a = 1')->set('b = 2'); $query->set(array('a = 1', 'b = 2');

1.0

参数

conditions

array<string|int, mixed>|string字符串或字符串条件数组。

glue

string用于连接条件字符串的粘合剂。默认为 ,. 请注意,粘合剂在首次使用时设置,无法更改。

响应

$this

setLimit

如果数据库驱动程序支持,则设置结果集的偏移量和限制。

setLimit( limit,  offset) : 
继承

用法:$query->setLimit(100, 0); (检索 100 行,从第一条记录开始)$query->setLimit(50, 50); (检索 50 行,从第 50 条记录开始)

2.0.0

参数

limit

int结果集的限制

offset

int结果集的偏移量

响应

$this

setQuery

允许将直接查询提供给数据库驱动的 setQuery() 方法,但仍然允许查询具有绑定变量。

setQuery(\Joomla\Database\DatabaseQuery|string sql) : 
继承

用法:$query->setQuery('select * from #__users');

1.0

参数

sql

DatabaseQuery|stringSQL 查询字符串或 DatabaseQuery 对象

响应

$this

toQuerySet

从当前查询创建一个类型为 querySet 的 DatabaseQuery 对象。

toQuerySet() : \Joomla\Database\DatabaseQuery
继承

用法:$query->select('name')->from('#__foo')->order('id DESC')->setLimit(1) ->toQuerySet() ->unionAll($query2->select('name')->from('#__foo')->order('id')->setLimit(1)) ->order('name') ->setLimit(1)

2.0.0

响应

DatabaseQuery一个新的 DatabaseQuery 对象。

unbind

用于解绑绑定变量的方法。

unbind(array|string|int key) : 
继承

2.0.0

参数

key

array<string|int, mixed>|string|int要解绑的键或键数组。

响应

$this

union

将一个查询添加到当前查询的 UNION 中。

union(\Joomla\Database\DatabaseQuery|string query,  distinct = true) : 
继承

用法:$query->union('SELECT name FROM #__foo') $query->union('SELECT name FROM #__foo', true)

1.0

参数

query

DatabaseQuery|string要联合的 DatabaseQuery 对象或字符串。

distinct

bool如果为 true,则仅从联合中返回不同的行。

响应

$this

unionAll

将一个查询添加到当前查询的 UNION ALL 中。

unionAll(\Joomla\Database\DatabaseQuery|string query) : 
继承

用法:$query->unionAll('SELECT name FROM #__foo')

see union

1.5.0

参数

query

DatabaseQuery|string要联合的 DatabaseQuery 对象或字符串。

响应

$this

update

向查询的 UPDATE 子句添加一个表名。

update( table) : 
继承

用法:$query->update('#__foo')->set(...);

1.0

抛出

QueryTypeAlreadyDefinedException如果查询类型已定义

参数

table

string要更新的表。

响应

$this

validateRowNumber

验证传递给 selectRowNumber 方法的参数并设置通用变量。

validateRowNumber( orderBy,  orderColumnAlias) : 
继承

2.0.0

抛出

RuntimeException

参数

orderBy

string用于窗口函数的排序表达式。

orderColumnAlias

string新排序列的别名。

响应

void

values

添加一个元组或元组数组,这些元组或元组数组将用作 INSERT INTO 语句的值。

values(array|string values) : 
继承

用法:$query->values('1,2,3')->values('4,5,6'); $query->values(array('1,2,3', '4,5,6'));

1.0

参数

values

array<string|int, mixed>|string单个元组或元组数组。

响应

$this

where

向查询的 WHERE 子句添加单个条件或条件数组。

where(array|string conditions,  glue = 'AND') : 
继承

用法:$query->where('a = 1')->where('b = 2'); $query->where(array('a = 1', 'b = 2'));

1.0

参数

conditions

array<string|int, mixed>|string字符串或 WHERE 条件数组。

glue

string用于连接条件的粘合剂。默认为 AND。请注意,粘合剂在首次使用时设置,无法更改。

响应

$this

whereIn

向查询添加 WHERE IN 语句。

whereIn( keyName, mixed||string|int keyValues, array|string dataType = ParameterType::INTEGER) : 
继承

注意,所有值必须是相同的数据类型。

用法 $query->whereIn('id', [1, 2, 3]);

2.0.0

参数

keyName

stringWHERE 子句的键名

keyValues

array<string|int, mixed>要匹配的值数组

dataType

array<string|int, mixed>|string对应于 SQL 数据类型的常量。它可以是一个数组,在这种情况下它必须与 $keyValues 的长度相同

响应

$this

whereNotIn

向查询添加 WHERE NOT IN 语句。

whereNotIn( keyName, mixed||string|int keyValues, array|string dataType = ParameterType::INTEGER) : 
继承

注意,所有值必须是相同的数据类型。

用法 $query->whereNotIn('id', [1, 2, 3]);

2.0.0

参数

keyName

stringWHERE 子句的键名

keyValues

array<string|int, mixed>要匹配的值数组

dataType

array<string|int, mixed>|string对应于 SQL 数据类型的常量。它可以是一个数组,在这种情况下它必须与 $keyValues 的长度相同

响应

$this

year

用于获取字符串以从日期列中提取年份。

year( date) : 
继承

用法:$query->select($query->year($query->quoteName('dateColumn')));

2.0.0

参数

date

string包含要提取的年份的日期列。

响应

string返回从日期中提取年份的字符串。

属性

bounded

继承

保存绑定对象的键/值对。

类型(s)

array<string|int, mixed>

parameterMapping

继承

参数类型的映射数组。

类型(s)

array<string|int, mixed>

db

继承

数据库驱动程序。

类型(s)

DatabaseInterface

sql

继承

SQL 查询(如果提供了直接查询字符串)。

类型(s)

string

type

继承

查询类型。

类型(s)

string

alias

继承

查询别名。

类型(s)

string|null

element

继承

通用查询(类型 = null)的查询元素。

类型(s)

QueryElement

select

继承

选择元素。

类型(s)

QueryElement

delete

继承

删除元素。

类型(s)

QueryElement

update

继承

更新元素。

类型(s)

QueryElement

insert

继承

插入元素。

类型(s)

QueryElement

from

继承

来自元素。

类型(s)

QueryElement

join

继承

加入元素。

类型(s)

array<string|int, QueryElement>|null

set

继承

设置元素。

类型(s)

QueryElement

where

继承

WHERE 元素。

类型(s)

QueryElement

group

继承

分组元素。

类型(s)

QueryElement

having

继承

HAVING 元素。

类型(s)

QueryElement

columns

继承

INSERT 语句的列列表。

类型(s)

QueryElement

values

继承

INSERT 语句的值列表。

类型(s)

QueryElement

order

继承

排序元素。

类型(s)

QueryElement

autoIncrementField

继承

自动递增插入字段元素。

类型(s)

bool

call

继承

调用元素。

类型(s)

QueryElement

exec

继承

执行元素。

类型(s)

QueryElement

merge

继承

查询元素列表。

类型(s)

array<string|int, QueryElement>|null

querySet

继承

查询对象。

类型(s)

DatabaseQuery|null

selectRowNumber

继承

窗口函数的详细信息。

类型(s)

array<string|int, mixed>|null

nullDatetimeList

继承

日期时间表示为零或 null 的列表。

类型(s)

array<string|int, string>

offset

继承

结果集的偏移量。

类型(s)

int|null

limit

继承

结果集的限制。

类型(s)

int|null

preparedIndex

继承

用于 bindArray 函数的内部索引,用于唯一准备的参数。

类型(s)

int

forUpdate

在 "FOR UPDATE" 锁中使用的 FOR UPDATE 元素

类型(s)

QueryElement

forShare

在 "FOR SHARE" 锁中使用的 FOR SHARE 元素

类型(s)

QueryElement

noWait

在 "FOR SHARE" 和 "FOR UPDATE" 锁中使用的 NOWAIT 元素

类型(s)

QueryElement

returning

INSERT INTO 的 RETURNING 元素

类型(s)

QueryElement

bounded

保存绑定对象的键/值对。

继承

2.0.0

类型(s)

array<string|int, mixed>

parameterMapping

参数类型的映射数组。

继承

2.0.0

类型(s)

array<string|int, mixed>

db

数据库驱动程序。

继承

1.0

类型(s)

DatabaseInterface

sql

SQL 查询(如果提供了直接查询字符串)。

继承

1.0

类型(s)

string

type

查询类型。

继承

1.0

类型(s)

string|null

alias

查询别名。

继承

2.0.0

类型(s)

string|null

element

通用查询(类型 = null)的查询元素。

继承

1.0

类型(s)

QueryElement

select

选择元素。

继承

1.0

类型(s)

QueryElement

delete

删除元素。

继承

1.0

类型(s)

QueryElement

update

更新元素。

继承

1.0

类型(s)

QueryElement

insert

插入元素。

继承

1.0

类型(s)

QueryElement

from

来自元素。

继承

1.0

类型(s)

QueryElement

join

加入元素。

继承

1.0

类型(s)

array<string|int, QueryElement>

set

设置元素。

继承

1.0

类型(s)

QueryElement

where

WHERE 元素。

继承

1.0

类型(s)

QueryElement

group

分组元素。

继承

1.0

类型(s)

QueryElement

having

HAVING 元素。

继承

1.0

类型(s)

QueryElement

columns

INSERT 语句的列列表。

继承

1.0

类型(s)

QueryElement

values

INSERT 语句的值列表。

继承

1.0

类型(s)

QueryElement

order

排序元素。

继承

1.0

类型(s)

QueryElement

autoIncrementField

自动递增插入字段元素。

继承

1.0

类型(s)

bool

call

调用元素。

继承

1.0

类型(s)

QueryElement

exec

执行元素。

继承

1.0

类型(s)

QueryElement

merge

查询元素列表,可能包括 UNION、UNION ALL、EXCEPT 和 INTERSECT。

继承

2.0.0

类型(s)

array<string|int, QueryElement>

querySet

查询对象。

继承

2.0.0

类型(s)

DatabaseQuery

selectRowNumber

窗口函数的详细信息。

继承

2.0.0

类型(s)

array<string|int, mixed>|null

nullDatetimeList

日期时间表示为零或 null 的列表。

2.0.0

类型(s)

array<string|int, mixed>

offset

OFFSET 元素

继承

2.0.0

类型(s)

QueryElement

limit

LIMIT 元素

继承

2.0.0

类型(s)

QueryElement

preparedIndex

用于 bindArray 函数的内部索引,用于唯一准备的参数。

继承

2.0.0

类型(s)

int

forUpdate

在 "FOR UPDATE" 锁中使用的 FOR UPDATE 元素

继承

2.0.0

类型(s)

QueryElement

forShare

在 "FOR SHARE" 锁中使用的 FOR SHARE 元素

继承

2.0.0

类型(s)

QueryElement

noWait

在 "FOR SHARE" 和 "FOR UPDATE" 锁中使用的 NOWAIT 元素

继承

2.0.0

类型(s)

QueryElement

returning

INSERT INTO 的 RETURNING 元素

继承

2.0.0

类型(s)

QueryElement