我得到了一行简单的代码,用于获取续集数据库并填充类别列表,这些类别字符串来自产品表,因此许多产品行会产生重复的类别条目。
$cat_result = $mysqli -> query("SELECT * FROM products");
while ($cat_row = mysqli_fetch_array($cat_result, MYSQL_NUM)) {
if($cat_row['4'] != NULL) {
print '<li><a href="/category/'. $cat_row['4'] .'">'. $cat_row['4'] .'</a></li>';
}
}
目前的输出是这样的:
那么我如何能够抑制重复输入并获得类似的东西?
感谢您的帮助!
答案 0 :(得分:6)
根据要求:
您可以在SELECT中使用DISTINCT和/或使用GROUP BY
即:
SELECT DISTINCT col1, col2 FROM TABLE GROUP BY col_x
根据http://dev.mysql.com/doc/refman/5.7/en/distinct-optimization.html
这将避免您的查询重复。
此外,WHERE
子句也可能有用(稍后)。
即:
SELECT DISTINCT col1, col2 FROM TABLE WHERE col_x = 'y' GROUP BY col_x
参考:
答案 1 :(得分:3)
根据DISTINCT
和GROUP BY
以上的所有人的建议,两者都可以解决您的问题,因此您可以执行以下操作: -
假设列名为category
,然后: -
$cat_result = $mysqli -> query("SELECT DISTINCT(category) FROM products");
OR
$cat_result = $mysqli -> query("SELECT * FROM products GROUP BY category");
注意: - 您也可以按照其他人的建议在DISTINCT
中选择n个不同的列。感谢。强>