This commit is contained in:
2023-04-20 22:41:25 +08:00
parent d2029e94a0
commit 08f664e136
2 changed files with 10 additions and 9 deletions
+1 -2
View File
@@ -262,8 +262,7 @@ class ActiveQuery extends Component implements ISqlBuilder
*/
public function count(): int
{
$builder = clone $this->builder;
$data = $this->execute($builder->count())->one();
$data = $this->execute($this->builder->count())->one();
if ($data && is_array($data)) {
return (int)array_shift($data);
}
+9 -7
View File
@@ -205,6 +205,9 @@ class SqlBuilder extends Component
*/
public function one(): string
{
if (count($this->query->select) < 1) {
$this->query->select = ['*'];
}
return $this->_selectPrefix() . $this->_prefix() . $this->builderLimit($this->query);
}
@@ -215,6 +218,9 @@ class SqlBuilder extends Component
*/
public function all(): string
{
if (count($this->query->select) < 1) {
$this->query->select = ['*'];
}
return $this->_selectPrefix() . $this->_prefix() . $this->builderLimit($this->query);
}
@@ -225,8 +231,7 @@ class SqlBuilder extends Component
*/
public function count(): string
{
$this->query->select('COUNT(*)');
return $this->_selectPrefix() . $this->_prefix() . $this->builderLimit($this->query);
return $this->_selectPrefix(['COUNT(*)']) . $this->_prefix() . $this->builderLimit($this->query);
}
@@ -263,12 +268,9 @@ class SqlBuilder extends Component
* @return string
* @throws Exception
*/
private function _selectPrefix(): string
private function _selectPrefix(array $select = ['*']): string
{
if (count($this->query->select) < 1) {
$this->query->select = ['*'];
}
$select = "SELECT " . implode(',', $this->query->select) . " FROM " . $this->query->from;
$select = "SELECT " . implode(',', $select) . " FROM " . $this->query->from;
if ($this->query->alias != "") {
$select .= " AS " . $this->query->alias;
}