【发布时间】:2021-04-21 08:24:34
【问题描述】:
我现在有一个这样的表,我想做的是计算每个 ID 的记录,其中 STATUS 已完成 . SELECT COUNT(*) FROM TABLE WHERE ID= foreach(ID) 之类的 AND 状态=1
【问题讨论】:
我现在有一个这样的表,我想做的是计算每个 ID 的记录,其中 STATUS 已完成 . SELECT COUNT(*) FROM TABLE WHERE ID= foreach(ID) 之类的 AND 状态=1
【问题讨论】:
select id, count(id) as count from table where status='COMPLETED' group by id;
基本上你需要在 MySQL 中使用 group by 子句。
【讨论】:
您可以像这样使用 Active Record 来做到这一点:
我假设你的表模型命名为Job,那么你可以获得所需的值:
$number = Job::find()->where(['STATUS' => 'Completed'])->count();
或者最好在模型中存储constant 属性,如下所示:
class Job extends ActiveRecord {
const STATUS_COMPLETED = 'Completed';
那么您的 ActiveQuery 将如下所示:
$number = Job::find()->where(['STATUS' => Job::STATUS_COMPLETED])->count();
还有完整的描述:Querying Data
【讨论】:
cards WHERE print_status=1 GROUP BY created_by "
$any_var = Your_Table::find()->where(['status' => 'Cimpleted'])->select('id')->orderBy('id')->groupBy('id')->count ();
【讨论】: