我想从sql结果创建一个数组(在php中),如下所示: 我们有sql-table“帖子”,它存储名称和消息。例如:
姓名|消息
约翰|你好
尼克|美好的一天
乔治|再见约翰|其中
我想要的是输出已发布消息但不会多次显示相同名称的人的姓名。 因此,输出将是约翰,尼克,乔治。 (从这些记录中,我们看到John发布了2条消息,但在最终输出中,我们只看到了一次他的名字。)
这有可能吗? 提前谢谢。
答案 0 :(得分:1)
尝试:
$sql = <<<END
SELECT DISTINCT Name FROM Posts
END;
$query = mysql_query($sql) or die($sql . ' - ' . mysql_error());
$names = array();
while ($row = mysql_fetch_array($query)) {
$names[] = $row[0];
}
print_r($names);
答案 1 :(得分:0)
SELECT DISTINCT
答案 2 :(得分:0)
您可以运行SQL查询来只选择不同的名称,而不是其他任何名称:
SELECT DISTINCT Name FROM Posts;
这将为您提供一个由不同名称值组成的结果集,每个唯一值仅在集合中返回一次。
答案 3 :(得分:0)
要获得计数,您需要使用group by汇总:
SELECT
NAME
, COUNT(*) as Posts
FROM
Posts
GROUP BY
NAME
答案 4 :(得分:0)
如果您不反对BY BY
,那么这是SQLselect count(name) as N, name from posts group by name ;
有超过1个帖子的人
select count(name) as N, name from posts group by name having N > 1 ;