我有一個大型的產品數據庫,每個星期天,我的腳本正在激活50個新產品。 的事情是,根據我的腳本中的一些規則,即時通訊尋找一些產品,我應該優先激活。 (對於你的例子,可以說它應該總是優先激活名稱爲'hello kitty'和'meshuggah'的產品,在其他所有方面)我如何通過優先ID列表對mysql結果進行排序?
我的數據庫表包含有關產品的信息和唯一的ID。 可以說,腳本在標題中找到5個這樣的id,並且有hello kitty。
因此,我如何使查詢,以便優先項目將在上面,然後是id desc?
這裏的IM以後有什麼一些僞代碼:
SELECT * FROM products order by (id='59', id='47', id='28', id='29', id='20'), id desc limit 50
的結果應該給我的ID 59,47,28,29和20,再其次是在產品表中其他ID通過ID進行排序降。
在一個查詢中可能嗎?
啊,謝謝,每天學習新東西:)只是不得不添加desc後面的字段或其他字段id出來在底部 – 2013-02-25 14:35:12
@KristianRafteseth這是偉大的':D' – 2013-02-25 14:36:50
請注意,這是可行的,因爲FIELD()返回0如果'id'(在這種情況下)的值沒有找到。通過使命令DESC將零排序到底部,並使用第二個搜索詞(這裏是'id')對這些排序。 – 2013-02-25 14:46:38