現在の値に従って行を更新するクエリを作成しています。 「私は更新だ特定の行が4つの同一の行の値と他の行のうちテーブルにおける最小値であるつの列を持っている場合、」私は確認していた条件の
一つです。行の列が最も低いかどうかを知る?
..だから例えば、私のテーブル構造はそうのようなものです:
INTEGER id - PRIMARY KEY
FLOAT lookup
VARCHAR(128) option1
INTEGER option2
INTEGER option3
INTEGER option4
は私がUPDATE
-ingだ行は、他のすべての行のうち、最も低いlookup
値を有するものであるかどうかを知りたいですそれは同じoption1
、option2
、option3
とoption4
値と一致します。
どのように私は、単一のクエリでそのようなことを実現するだろうか?私は、クエリを最小限に抑え、単一のクエリを最大限に活用しようとしているので、私はこのために私のフロントエンドを使用することはできません。私はサブクエリを使用することができ、クエリの文字制限は8192文字です。
編集:
サンプル行:
id | lookup | option1 | option2 | option3 | option4
1 | 1.000 | "a" | 2 | 1 | 4
2 | 1.100 | "a" | 1 | 1 | 2
3 | 1.200 | "a" | 1 | 1 | 1
4 | 1.250 | "a" | 1 | 1 | 1
5 | 1.300 | "a" | 1 | 1 | 1
私が行うことにしたいクエリ:
UPDATE table SET option2 = IF_LOWEST_IN_TABLE(lookup)? LOWEST:NOT_LOWEST WHERE option1 = "a";
LOWEST
部分は、id
1の行のために起こる2と3の必要がありますIF_LOWEST_IN_TABLE
と私はそれがSQLで実装する必要があるかわからないので、三項演算子は "プレースホルダ"です。
join
と
group by
使用することができます
サンプルデータと希望結果セットは大いに役立ちます。 – lad2025
また、クエリは、あなたはlad2025 @Harish Barma @ –
を試してみました - 私は、サンプルデータとサンプルクエリを追加しました。私は 'SELECT'のような結果セットが必要かどうかわからないので、私は何をすべきか分かりません。 – shavit