0

ビルドの最後の結果を出力する MySql クエリを次に示します。

select * from buildresults where status in ('success','failed') 
and projectId=4 order by id desc limit 1

一連の projectId に対して for_each と同等のクエリを実行するにはどうすればよいですか? プロジェクトごとに、最後のビルドが成功したか失敗したかを確認する必要があります。実行中のビルドを考慮したくありません。

projectId のセットを返す別のクエリがあります。

4

3 に答える 3

4

必要なのは、各結果を projectId の最後に制限することです。

select * from buildresults
where status in ('success','failed')
and id = 
(
  select max(id) from buildresults as b2
  where b2.status in ('success','failed') and
  b2.projectId = buildresults.projectId
)
于 2013-07-16T07:53:17.103 に答える
0
select * from buildresults where status in ('success','failed') 
group by project_id order by id desc

その後、すべての結果を 1 行に 1 つずつループできます。

于 2013-07-16T07:46:25.557 に答える
0

あなたはこのようなことをすることができます

    select * from buildresults 
where status in ('success','failed') 
    and projectId IN 
  (SELECT projectId from other_table where other condition)
  order by id desc

最後の成功と失敗の両方が必要な場合は、これを試すことができます

SELECT MAX(id),status FROM buildresults
WHERE status IN ('success','failed')
GROUP BY status
于 2013-07-16T07:46:16.267 に答える