2
我有如下表:PHP MySQL的獲取下一個和以前的ID從數據庫
**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'];
}
我不知道該如何編寫查詢。
我相信,MySQL將需要'UNION'的每一個部分是用'()'括起來,以便擁有自己的'ORDER BY'子句。 '(SELECT * ... ORDER BY ID DESC LIMIT 1)UNION(SELECT ... ORDER BY ...)' –
也會注意到在UNION查詢中'SELECT *'不可取。明確列列表。 –
@MichaelBerkowski:更新了這兩個建議的答案,因爲我沒有看到他們的任何缺點。謝謝! –