2013-06-01 24 views
1

我的數據庫中有一堆產品數據。每個產品都有一個ShopID,告訴我它屬於哪個商店。 我希望ShopID 1,4,7的所有產品都會顯示在結果中。 我該怎麼做?MySQL:顯示某些內容的最後一行

示例代碼

SELECT * FROM Tablename WHERE Name LIKE %red% ORDER BY ShopID ASC 

最好的問候, D.

回答

0

另一種替代辦法是在你的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 
+0

工程,太棒了!非常感謝! – ItsMeDom

1

如果ShopID不保存爲逗號分隔值,您可以使用MySQL的FIELD()

ORDER BY FIELD(ShopID, 1,4,7) ASC, ShopID ASC 

1,4,7出現在結果列表的最後部分的原因是因爲FIELD()返回列表中指定的索引。在這種情況下,任何不在1,4,7中的號碼都會有一個索引0,使其位於列表的第一位。

0

使用這樣的:

ORDER BY (ShopID IN (1, 4, 7)), ShopID 

ShopID IN表達將對於不爲做相匹配的行,1行返回0。

相關問題