[免責事項:私は問題を表現するのに苦労します。すべて歓迎]他の行に依存するSQLクエリを実行するにはどうすればよいですか?
私のSQLの理解では、関係は主に行の取得に焦点を当てています。
val2=Z
の行の後にval2=V
の行がある場合は、効率的にどのようにして効率的に処理できますか? 。言い換えれば、どのように私は私が興味を持って行のシーケンスがあるかどうかを確認するには、行を次のように頭を見ることができるクエリを表現するん
id val1 val2
0 A Z
1 B V
2 C Z
3 D B
に基づいて
を更新## (役に立つかもしれない)答え、私は1つの余分なことについてはっきりする必要があります:私が見ることができるシーケンスは柔軟で(それはまたZ B
かもしれない)、またその長さは変わることができます。
この場合、条件付きインデックスが動作するとわかります: 'select * from tblname as a val2 = 'z'そして(bblとしてbblからt2を選んでb.id> a.id order by b.id limit 1)= 'v'' - これは最初に 'val2 =' z''のインデックスをチェックし、サブクエリに基づいてそれを条件付きで絞り込む必要があります。私はPHPでこの種のロジックを個人的にやっていますが... –
注:SQLでは、行には固有の順序はありません。したがって、次の行が何であるかを決定するために使用する順序を定義しない限り、「次の行」はありません。 – RBarryYoung
@RBarryYoung。 。 。 'id'カラムがこの質問に対してこの情報を提供すると仮定することは合理的です。 –