【发布时间】:2016-05-22 13:46:25
【问题描述】:
我有一行简单的代码,它获取续集数据库并填充类别列表,这些类别字符串来自产品表,因此许多产品行产生重复的类别条目。
$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>';
}
}
当前的输出是这样的:
- 类别1
- 类别1
- 类别2
- 类别2
那么我怎样才能抑制重复输入并得到这样的东西呢?
- 类别1
- 类别2
感谢您的帮助!
【问题讨论】:
-
DISTINCT 和/或 GROUP BY
-
嗨@Fred-ii-,再见!所以我必须在必须使用 DISTINCT 的地方执行“SELECT * FROM product GROUP BY category”?
-
$cat_result = $mysqli -> query("SELECT DISTINCT(name) FROM products"); or $cat_result = $mysqli -> query("SELECT * FROM products GROUP BY name"); -
SELECT DISTINCT WhatEverTheColumnIsCalled FROM products特别是因为你只使用一列,不要检索超过你使用的,你会发现它运行得也更快 -
Ciao Andrea! si 和
SELECT DISTINCT col1, col2 FROM TABLE按照 dev.mysql.com/doc/refman/5.7/en/distinct-optimization.html - 来吧?