Yii2 : 如何编写不同的 SQL 查询?
我想在 Yii 2 中实现以下 SQL 查询,但没有成功。
这应该给出唯一公司名称的总数:
SELECT count(DISTINCT(company_name)) FROM clients
这应该显示为 和 :company_name
client code
id(PK)
SELECT (DISTINCT(company_name,client_code)) FROM clients
如何做到这一点?
我想在 Yii 2 中实现以下 SQL 查询,但没有成功。
这应该给出唯一公司名称的总数:
SELECT count(DISTINCT(company_name)) FROM clients
这应该显示为 和 :company_name
client code
id(PK)
SELECT (DISTINCT(company_name,client_code)) FROM clients
如何做到这一点?
试试这个:
$total = YourModel::find()->select('company_name')->distinct()->count();
在搜索模型中:
public function search($params)
{
$query = YourModel::find()->select('company_name')->distinct();
// or
$query = YourModel::find()->select(['company_name', 'client_code'])->distinct();
$query->orderBy('id desc');
$dataProvider = new ActiveDataProvider([
'query' => $query,
]);
// ...
}
回答我自己的问题,我得到了以下工作解决方案:
获取唯一company_name
计数:
$my = (new yii\db\Query())
->select(['company_name',])
->from('create_client')
->distinct()
->count();
echo $my;
不同company_name
和client_code
的列表:
$query = new yii\db\Query();
$data = $query->select(['company_name','client_code'])
->from('create_client')
->distinct()
->all();
if ($data) {
foreach ($data as $row) {
echo 'company_name: ' . $row['company_name'] . ' client_code: ' . $row['client_code'] . '<br>';
}
}