如何在MySQL中只返回一次列值

时间:2011-06-10 19:36:51

标签: php mysql database

我需要帮助。我有一个显示产品类型标题的数据库。

到目前为止我的代码是:

    $query = mysql_query("SELECT type FROM certs ORDER by type") or die("Could not execute query"); 


while($row = mysql_fetch_array($query) )
{

   $product .= "<h1>".$row["type"]."</h1>";
}

echo($product);

返回

<h1>MR001</h1>
<h1>MR001</h1>
<h1>MR002</h1>
<h1>MR003</h1>
<h1>MR003</h1>
<h1>MR004</h1>
<h1>MR004</h1>
<h1>MR004</h1>

等,但我需要它只返回一次相同的值?

<h1>MR001</h1>
<h1>MR002</h1>
<h1>MR003</h1>
<h1>MR004</h1>

STUCK.COM帮助!!!

8 个答案:

答案 0 :(得分:6)

将您的查询更改为使用DISTINCT,这只会返回唯一的行:

mysql_query("SELECT DISTINCT type FROM certs ORDER by type")

为方便使用,您的整个更正代码如下:

$query = mysql_query("SELECT DISTINCT type FROM certs ORDER by type") or die("Could not execute query");
while($row = mysql_fetch_array($query) )
{
    $product .= "<h1>".$row["type"]."</h1>";
}
echo($product);

答案 1 :(得分:6)

在SQL查询中使用 DISTINCT .. 试试这个:

$query = mysql_query("SELECT DISTINCT type FROM certs ORDER by type") or die("Could not execute query");

while($row = mysql_fetch_array($query) ) 
{     
   $product .= "<h1>".$row["type"]."</h1>"; 
}  

答案 2 :(得分:4)

最好使用DISTINCT

对MySQL执行此操作
SELECT DISTINCT type FROM certs ORDER by type

详细了解using DISTINCT in MySQL

答案 3 :(得分:2)

我认为你想使用SELECT DISTINCT type。 。 。

答案 4 :(得分:2)

尝试DISTINCT

"SELECT DISTINCT type FROM certs ORDER by type"

答案 5 :(得分:2)

看看GROUP BY以及DISTINCT运算符。

对于您的具体示例:

$query = mysql_query("SELECT DISTINCT type FROM certs ORDER by type") or die("Could not execute query"); 

答案 6 :(得分:2)

使用分组

SELECT type FROM certs GROUP BY type

(bit offtopic) - 最好在单独的表中使用类型定义(例如,不在证书中,但在自己的表中) - 并通过外键链接(例如,type_id而不是类型 - 对于MR001,它将为1,2对于MR002等)

要列出具有类型名称的证书,请使用JOIN

答案 7 :(得分:1)

您正在寻找SELECT DISTINCT。您可能想要查看完整的MySQL syntax for Select