我有5个状态字段,分别称为“状态”(0..4)。我试图找到一种最佳的方法来计算每个字段的状态,包括0。有一个例子:
table Example
row 1:
int id=1; string(255) content="some_content"; smallint status=1;
row 2:
int id=2; string(255) content="some_content"; smallint status=1;
row 3:
int id=3; string(255) content="some_content"; smallint status=0;
row 4:
int id=4; string(255) content="some_content"; smallint status=4;
end
我想要这样的结果:$result === array (0 => 0, 1 => 2, 2 => 0, 3 => 0, 4 => 1)
现在我只看到一种方法-为每个状态创建新查询,但是我敢肯定还有更好的方法。有人可以帮我找到它吗..:)
感谢您的关注!
答案 0 :(得分:1)
假设您有一个保存状态的表(需要显示匹配的行数为0的表),而另一些表的数据已为状态分配了标准查询,则该表将联接这些表,对结果进行分组并依靠数据表中的外观:
select st.status, count(dt.status)
from status_table st
left join data_table dt on
st.status = dt.status
group by st.status
即使您可以从SQL返回一个数组,也不会是一个关联数组。我将在应用程序代码(您的情况下为PHP)中处理数据库的输出。