提供此表
// Copy array to keep order of origin array
$arr = $originArr;
usort($arr, function($a, $b){
return explode('-', $b)[1] - explode('-', $a)[1];
});
echo $arr[0];
// h5-19
我想执行一个查询,提取所有id_status等于4的id_order,因此在这种情况下,输出应为:
id_order|id_status|
--------|---------|
141 |4 |
141 |4 |
142 |4 |
142 |4 |
143 |5 |
143 |4 |
id_order 143的订单将被排除,因为它具有id_status <> 4的一行。
答案 0 :(得分:4)
我只会使用group by
和having
:
select id_order
from t
group by id_order
having min(id_status) = max(id_status) and min(id_status) = 4;
答案 1 :(得分:1)
类似的方法可以工作,但是根据您的索引,速度可能很慢
从t中选择不同的id_order id_order不在的位置(从t的id_status <> 4中选择id_order);
答案 2 :(得分:0)
为什么不
从t中选择id_order,其中id_status = 4(按id_order分组)