我目前構建ID數組和查詢使用該陣列內爆像這樣:問題與ORDERING查詢結果
$sql = "SELECT * FROM item_bank_tb WHERE item_id IN(" . implode(',', $ids) . ")";
陣列$ids
以這樣的方式構成的,即ID被以特定的順序。但是,這個查詢的結果不是按照這個順序。我在猜測,因爲他們都在一個查詢中,結果以他們所在的順序(升序)顯示。
有沒有解決這個得到的一種方式?
許多感謝(不是包括,我可以爲了通過字段之外)。
我目前構建ID數組和查詢使用該陣列內爆像這樣:問題與ORDERING查詢結果
$sql = "SELECT * FROM item_bank_tb WHERE item_id IN(" . implode(',', $ids) . ")";
陣列$ids
以這樣的方式構成的,即ID被以特定的順序。但是,這個查詢的結果不是按照這個順序。我在猜測,因爲他們都在一個查詢中,結果以他們所在的順序(升序)顯示。
有沒有解決這個得到的一種方式?
許多感謝(不是包括,我可以爲了通過字段之外)。
看看這個例子。你必須使用field()函數。
SELECT * FROM item_bank_tb WHERE item_id IN(1,3,2)
order by field(item_id,1,3,2)
這樣你就可以按照你想要的順序得到你的物品。
夢幻般的人在這裏!謝謝 – buymypies 2011-05-09 21:16:36
很高興我能幫助你。 :) – 2011-05-09 21:20:10
使用ORDER BY
的結果排序方式。你可以有ORDER BY DESC
(從高到低遞減)或ORDER BY ASC
(從低到高遞增)。
例如:
SELECT colName,colEmail FROM tblUsers ORDER BY id ASC
在這裏閱讀更多:
你可以構造一個 「訂貨人」 temporay表(如果它沒有太多的數據),而不是ID陣列你可以插入到臨時表中的兩個值:ID,訂單
再加入,然後「按訂單順序」
要小心如何處理來自同一會話的不同查詢。 – 2011-05-09 21:18:26
與質疑爲何不你想使用order by子句嗎? – Eineki 2011-05-09 21:12:01