我的數據庫中有一堆產品數據。每個產品都有一個ShopID,告訴我它屬於哪個商店。 我希望ShopID 1,4,7的所有產品都會顯示在結果中。 我該怎麼做?MySQL:顯示某些內容的最後一行
示例代碼
SELECT * FROM Tablename WHERE Name LIKE %red% ORDER BY ShopID ASC
最好的問候, D.
我的數據庫中有一堆產品數據。每個產品都有一個ShopID,告訴我它屬於哪個商店。 我希望ShopID 1,4,7的所有產品都會顯示在結果中。 我該怎麼做?MySQL:顯示某些內容的最後一行
示例代碼
SELECT * FROM Tablename WHERE Name LIKE %red% ORDER BY ShopID ASC
最好的問候, D.
另一種替代辦法是在你的ORDER BY
子句中使用一個CASE
聲明:
SELECT *
FROM Tablename
WHERE Name LIKE '%red%'
ORDER BY CASE WHEN ShopID IN (1,4,7) THEN 1 ELSE 0 END, ShopID
如果ShopID
不保存爲逗號分隔值,您可以使用MySQL的FIELD()
ORDER BY FIELD(ShopID, 1,4,7) ASC, ShopID ASC
1,4,7
出現在結果列表的最後部分的原因是因爲FIELD()
返回列表中指定的索引。在這種情況下,任何不在1,4,7
中的號碼都會有一個索引0
,使其位於列表的第一位。
使用這樣的:
ORDER BY (ShopID IN (1, 4, 7)), ShopID
的ShopID IN
表達將對於不爲做相匹配的行,1行返回0。
工程,太棒了!非常感謝! – ItsMeDom