我在寫一個查詢,根據它們的當前值更新行。
我檢查的其中一個條件是「如果我正在更新的特定行有一列是表中具有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中實現。
樣本數據和期望結果集會幫助很多。 – lad2025
也是你試過的查詢 –
@ lad2025 @Harish Barma - 我添加了示例數據和示例查詢。我不知道我是否需要像SELECT這樣的結果集,所以我不知道我該怎麼做。 – shavit