2013-09-25 41 views
0

我使用PDO和MySQL。如何從SELECT DISTINCT查詢中獲取所有列?

我想從給定表中選擇給定列中具有不同值的所有行,但SELECT DISTINCT column_name FROM table只返回具有該列名的行。因此我無法訪問其他行的列。

我一直在尋找答案,它看起來像SELECT DISTINCT column_name FROM table應該返回列名中的不同值的所有行與所有行的列。然而,我只得到我想要分開的列:

Array 
    (
     [image] => leather_helmet.jpg 
     // there are supposed to be more fields here... 
    ) 

這可能是PDO的錯誤還是我做錯了什麼?

在此先感謝! :)

回答

1

如果你想只有1列不同,你必須考慮你想要的其他列的記錄。例如,如果你喜歡分辨率最低的記錄id那麼你可以做

SELECT * 
FROM armor_unsealed 
WHERE id IN 
(
    SELECT min(id) 
    FROM armor_unsealed 
    WHERE piece=:piece 
    GROUP BY image 
)' 
+0

你好!你能解釋你的答案背後的推理嗎? –

+0

應該挑選哪些不明顯的值? –

+0

如果我想在varchar列內使用不同的字符串,我會替換'SELECT MINTIN(id)'作爲'SELECT DISTINCT image'嗎? –