2011-07-29 24 views
0

我想知道如何從數據庫表中顯示多行?我知道一種方法,但它可以讓你只顯示一行。這裏是代碼:如何顯示數據庫中的多行?

('SELECT * FROM cats WHERE cat_id="32" ORDER BY sorting') 

我需要標記WHERE顯示更多的ID。不好的例子

('SELECT * FROM cats WHERE cat_id="32, 33, 34, 37" ORDER BY sorting') 

我該怎麼辦?

+0

我之前沒有想過要問這個,因爲我認爲你的「cat_id」字段是一些變化的整數。現在我正在重新審視你的問題,我注意到你用報價包圍了你的cat_id值。如果您的cat_id是一個字符串,那麼請確保您在我給出的示例中使用了引號。 –

回答

6
SELECT * FROM cats WHERE cat_id IN (32, 33, 35, 37) ORDER BY sorting 
1
SELECT * 
FROM cats 
WHERE cat_id IN ("32", "33", "34", "37") 
ORDER BY sorting 
0

的Kristofer霍克有最好的答案,但是你要注意,你也可以寫

WHERE cat_id = 32 
     OR cat_id = 33 
     OR cat_id = 35 
     OR cat_id = 37 
0

從康拉德的Kristofer的例子就在你所示的簡單的用例正常工作。請注意,使用OR或IN有時會強制優化器創建臨時表。如果您正在編寫更復雜的查詢,並且IN子句中使用的字段不是索引,請務必運行EXPLAIN命令。

EXPLAIN [you query here]; 

確定此情況。在某些情況下,我不得不使用UNION來優化查詢。

相關問題