logo

额外区块类型 (EBT) - 全新的布局构建器体验❗

额外区块类型 (EBT) - 样式化、可定制的区块类型:幻灯片、标签页、卡片、手风琴等更多类型。内置背景、DOM Box、JavaScript 插件的设置。立即体验布局构建的未来。

演示 EBT 模块 下载 EBT 模块

❗额外段落类型 (EPT) - 全新的 Paragraphs 体验

额外段落类型 (EPT) - 类似的基于 Paragraph 的模块集合。

演示 EPT 模块 滚动

滚动
01/10/2025, by Ivan

Select 查询构建器支持在字段列表中使用表达式。表达式示例包括「年龄字段的两倍」、「所有 name 字段的数量」以及标题字段的子字符串。请记住,许多表达式可能会使用 SQL 函数,而并非所有 SQL 函数都在所有数据库中标准化。模块开发者必须确保只使用与数据库兼容的表达式。(参见 函数和运算符列表

要向查询中添加表达式,请使用 addExpression() 方法。

$count_alias = $query->addExpression('COUNT(uid)', 'uid_count');
$count_alias = $query->addExpression('created - :offset', 'timestamp', array(':offset' => 3600));

上面第一行会向查询中添加「COUNT(uid) AS uid_count」。第二个参数是该字段的别名。在极少数情况下,如果别名已经被使用,会生成一个新的别名,并且 addExpression() 的返回值就是可用的别名。如果没有指定别名,则会生成一个默认值「expression」(或 expression_2、expression_3 等)。

可选的第三个参数是一个关联数组,用于提供占位符的值,这些值会作为表达式的一部分被使用。

请注意,某些 SQL 表达式如果没有伴随 $query->groupBy() 添加的 GROUP BY 子句,可能无法正常工作。开发者必须确保生成的查询是有效的。