我想知道如何從數據庫表中顯示多行?我知道一種方法,但它可以讓你只顯示一行。這裏是代碼:如何顯示數據庫中的多行?
('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')
我該怎麼辦?
我想知道如何從數據庫表中顯示多行?我知道一種方法,但它可以讓你只顯示一行。這裏是代碼:如何顯示數據庫中的多行?
('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')
我該怎麼辦?
SELECT * FROM cats WHERE cat_id IN (32, 33, 35, 37) ORDER BY sorting
SELECT *
FROM cats
WHERE cat_id IN ("32", "33", "34", "37")
ORDER BY sorting
的Kristofer霍克有最好的答案,但是你要注意,你也可以寫
WHERE cat_id = 32
OR cat_id = 33
OR cat_id = 35
OR cat_id = 37
從康拉德的Kristofer的例子就在你所示的簡單的用例正常工作。請注意,使用OR或IN有時會強制優化器創建臨時表。如果您正在編寫更復雜的查詢,並且IN子句中使用的字段不是索引,請務必運行EXPLAIN命令。
EXPLAIN [you query here];
確定此情況。在某些情況下,我不得不使用UNION來優化查詢。
我之前沒有想過要問這個,因爲我認爲你的「cat_id」字段是一些變化的整數。現在我正在重新審視你的問題,我注意到你用報價包圍了你的cat_id值。如果您的cat_id是一個字符串,那麼請確保您在我給出的示例中使用了引號。 –