我一直在毆打我的大腦,我沒有取得任何進展。我對SQL不太好,所以我希望答案很簡單,我只是不知道。如何在mySQL中排序爲動態生成的特定順序?
我有2個表:包含我想要的數據,與主鍵「圖像標識」舉辦一個名爲「圖像」。另一個稱爲「productPhotos」,它包含兩個字段(加上一個主鍵):imageID和productID。因此對於給定的產品可能會有多個圖像,並且可能會使用給定的圖像來表示幾種產品。
到目前爲止,它工作得很好,但問題來了。我有一個動態生成的產品ID列表,我想加載所有代表這些產品的圖像。我不僅要加載它們,還要按照列表中產品的順序加載它們。
所以,如果我的產品列表「5,2,4」,我想我的輸出列表中,爲產品5由第一所有的圖像,然後所有產品2圖像,那麼所有的產品4張圖片我並不特別關心小組內的順序。
抓取的右側的圖像是相當簡單的,但讓他們以正確的順序是可惡。我想出瞭如何以正確的順序得到我想要的圖像的ID,但是實際上在沒有單獨的MySQL調用的情況下獲取這些圖像迄今一直困擾着我。我已經嘗試設置一個臨時表,將我想要的ID存儲在@variable中,以及ORDER BY FIELD()和ORDER BY FIND_IN_SET()上的許多不同變體。
以下是我到目前爲止: 從productPhotos選擇imageID WHERE productID IN(5,2,4)ORDER BY FIELD(specificProductUID,5,2,4);
,成功地返回集合以正確的順序imageIDs的,但我已經在正從那裏把數據從圖像表的imageIDs受到阻礙。我知道我可以很容易地通過在PHP中使用兩個單獨的數據庫調用(一個獲取imageID和另一個載入圖像),但是(我認爲)這將意味着一個重大的性能明智的,它似乎是應該有更好的方法來做到這一點。
預先感謝任何幫助。
它就像一個美麗的夢想! 這就是JOIN的工作原理。非常感謝你的幫助。 – Robert 2009-05-25 16:30:40