2016-11-22 40 views
0

我有一個數據庫在不同電話上的網站。並從數據庫中收集數據,我有這樣的代碼在PHP中整理出重複項目

//echo "SELECT * FROM `product_info` DESC";die; 
    $filter = $this->queries->custom("SELECT * FROM `product_info`GROUP BY 'model' ORDER BY `model` ASC"); 

現在當我使用此代碼,那隻能說明,而不是所有的不同型號一個型號。

由於我已經不止一次地添加了一些模型,我想對它們進行排序。

像,我有fx在我的數據庫中添加了iPhone 7 5次不同的時間,當然我不希望網站顯示它5次,因此我想排序模型後只顯示一次模型。 我讀過關於array_unique的內容,但並不完全理解它。

+0

最好的方法查詢。從product_info添加選擇不同的模型。簡單,清晰,高效 –

+0

表中的數據如何顯示?是否有可能您的所有手機對「model」具有相同的值? – simon

+0

不,每個手機的型號更改值,這就是爲什麼它是最好的分類選項,如果我可以避免重複。 模型列充滿了手機的模型,如:銀河S7,iPhone 7,iPhone SE,榮譽8等.. –

回答

0

我猜我發現這個問題,這是一個小錯字。您的GROUP BY列使用了單引號(')而不是反引號(`)。單引號用於字符串值。這意味着您當前的查詢按字符串「model」(而不是列model)進行分組,這當然是每個記錄的相同字符串。

因此,無論使用反引號:

SELECT * FROM `product_info` GROUP BY `model` ORDER BY `model` ASC 

或省略反引號,因爲在所有他們只是在必要的時候你的列是reserved keyword:要做到這一點是它通過過濾

SELECT * FROM product_info GROUP BY model ORDER BY model ASC 
+0

非常感謝你,你救了我的一天! –

0

只需添加DISTINCT關鍵字

SELECT DISTINCT * FROM `product_info`GROUP BY 'model' ORDER BY `model` ASC 
+0

我已經嘗試過,但它只是返回一個電話。如果我刪除「GROUP BY」模型「部分,它會顯示更多手機,但重複以及... –

+0

SELECT DISTINCT ON(column_name) - 您是否嘗試過這種方法? –

+0

'SELECT DISTINCT ON'是PostgreSQL語法,不是MySQL。 – simon