一個表
id 位置 name 日期
1 A aa 1-1
2 B bb 1-1
3 C cc 1-1
4 A aab 1-2
5
6
結構如上圖所示:
當日期1月1日更新成1月2日,A對應name更新aab 就存到資料庫里 沒更新的保持不變 問題來了
我想查出 1-2 對應的三個位置的資料 要怎么用sql查出來
我現在采取的方式 每天不管ABC的name是否變動 都一起存入資料庫 但這樣作業量太大 name也不是天天變動
能否只存盤變動的name 不變動的通過sql陳述句補充上來
uj5u.com熱心網友回復:
存的時候使用merge into ,判斷name不等時候插入-->只存入更新的name查詢的時候使用row_number函式,取離查詢日期最近的資料即可。比如查1-2資料,按照位置分組,日期排序,取最新日期的,
按照上邊的例子,A會取到aab,而B會取到BB,C會取到CC。。查詢陳述句寫的時候,日期一列為常值即可--->查詢永遠是最新
merge into可參考文章:
https://blog.csdn.net/jeryjeryjery/article/details/70047022
分組函式可參考文章:
https://blog.csdn.net/qq_41805514/article/details/81772182
uj5u.com熱心網友回復:
好 謝謝 我先看看
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/11809.html
標籤:MySQL
