簡體   English   中英

php-mysql從數據庫中獲取下一個和上一個ID

[英]php-mysql fetch next and previous id from a database

我有下表:

**id**         **username**         **activity**
1              user1                  activity-like
2              user1                  activity-share
3              user3                  activity-like
4              user4                  activity-like
5              user1                  activity-share
6              user6                  activity-like
8              user1                  activity-share
9              user3                  activity-like
10             user5                  activity-share

(注意:沒有id = 7)

我正在嘗試使用php-mysql來獲取user1進行的活動並獲取ID。 在這種情況下,活動具有ID(1、2、5和8)。

$currentId = 5;

我想獲取下一個和上一個ID(如果存在)(在這種情況下為2和8)。

$fetch = mysql_query("SELECT * FROM `main` WHERE `username` = 'user1' AND id > '$id'");
if(mysql_num_rows($fetch) == 1){
while (){

}
$result = $fetch['id'];
}

我不確定如何為此編寫查詢。

您可以執行以下操作:

對於下一個ID,

SELECT id from tablename where username = 'user1' AND id > $currentId ORDER BY ID ASC LIMIT 1;

對於以前的ID,

SELECT id from tablename where username = 'user1' AND id < $currentId ORDER BY ID DESC LIMIT 1;

我認為您可以使用以下union查詢:

 (SELECT ID, USERNAME, ACTIVITY FROM MAIN WHERE username = 'user1' AND ID < '$id'
 ORDER BY ID DESC LIMIT 1)
 UNION 
 (SELECT ID, USERNAME, ACTIVITY FROM MAIN WHERE username = 'user1' AND ID > '$id'
 ORDER BY ID ASC LIMIT 1);

如果存在,第一個查詢片段應返回ID = 2 ,第二個查詢片段應返回ID = 8

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM