我有一個帶有 id 和 name 的表。但是 id 不是按順序保存的。當我當時有一個特定的 id 時,我想獲取以前的記錄 id。
| ID | 姓名 |
|---|---|
| 1 | 約翰 |
| 15 | 燈芯 |
| 18 | 蘇提 |
| 35 | 坎都 |
| 179 | 克爾蒂 |
| 201 | 女媧 |
如果我的 id 為 179。我想獲取以前的記錄 id。所以請向我提供查詢以獲取 pervious 列 id
uj5u.com熱心網友回復:
如果您有一個,則可以使用此查詢來獲取先前的值(如果存在):
select max(id) from table1 where id < your_current_id_value
如果你your_current_id_value是 179,那么你將得到 35,但如果你有 1,那么你將一無所獲。
uj5u.com熱心網友回復:
您可以在 MySQL 中嘗試:
SELECT * FROM table WHERE id < @Your_id LIMIT 1
在 SQL 服務器中:
SELECT * FROM table as table1
INNER JOIN table as table2
on table1.ID = (table2.ID -1)
uj5u.com熱心網友回復:
考慮到 Preivous ID 小于 Current ID,您的資料我添加了一些值進行測驗
create table MYTABLE(
Id INTEGER NOT NULL
,name VARCHAR(70) NOT NULL
);
INSERT INTO MYTABLE
(Id,name) VALUES
(1,'john'),
(3,'suthi'), ----test previous record id
(8,'kandu'), ----test previous record id
(15,'wick'),
(17,'keerthi'), ----test previous record id
(18,'suthi'),
(35,'kandu'),
(40,'nuwan'), ----test previous record id
(179,'keerthi'),
(201,'nuwan');
您想要的查詢
SELECT A.NAME,
A.CurrentID,
B.PreviousID
FROM (SELECT Max(ID) CurrentID,
NAME
FROM MYTABLE
GROUP BY NAME) A
JOIN (SELECT Min(ID) PreviousID,
NAME
FROM MYTABLE
GROUP BY NAME) B
ON A.NAME = B.NAME
AND A.CurrentID > B.PreviousID
輸出
| 姓名 | 當前ID | 上一個ID |
|---|---|---|
| 坎都 | 35 | 8 |
| 克爾蒂 | 179 | 17 |
| 女媧 | 201 | 40 |
| 蘇提 | 18 | 3 |
小提琴手
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/479907.html
