2016-11-22 92 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