有沒有簡單的方法來取得那些價值與其他記錄不同的記錄
P粉163951336
P粉163951336 2024-04-04 21:59:30
0
1
317

所以,我的資料庫中有記錄:

id 日期時間 姓名 等級
0 2022-03-22 23:18:01 約翰 615
1 2022-03-22 23:17:01 約翰 616
2 2022-03-22 23:16:02 約翰 616
3 2022-03-22 23:15:01 約翰 616
4 2022-03-22 23:14:01 約翰 617
5 2022-03-22 23:13:01 約翰 617
6 2022-03-22 23:12:01 約翰 616
7 2022-03-22 23:11:01 約翰 617
8 2022-03-22 23:10:02 約翰 618
9 2022-03-22 23:09:01 約翰 618

結果我想得到這些值,其中下一個「lvl」與上一個「lvl」不同。 我的意思是,我想獲取帶有 id 的結果記錄:

0 - 因為它是第一個,

1 - 因為lvl不等於0,

2,3 - 跳過,因為lvl與1相同

4 - 因為 lvl 與 1 不同,

5 - 跳過,因為 lvl 與 4 相同,

6 - 因為等級與 5 不同,

7 - 因為等級與 6 不同,

8 - 因為等級與 7 不同,

9 - 跳過。

P粉163951336
P粉163951336

全部回覆(1)
P粉164942791

這似乎非常適合 lag 分析函數(使用 MySQL 8 ):

with keep as (
  select *, if(id=Min(id) over() or level != lag(level) over(order by id), 1, 0) keepme
  from t
)
select id
from keep
where keepme=1;

範例小提琴

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!