SQL은 PHP 배열로 발생합니다
문제
다음과 같은 SQL 결과에서 배열 (PHP)을 만들고 싶습니다. 이름 그리고 메시지.예시:
이름 | 메시지
존 | 안녕하십니까
닉 | 좋은 날
조지 | 안녕
존 | 어디
내가 원하는 것은 메시지를 게시했지만 같은 이름을 1 회 이상 표시하지 않는 사람들의 이름을 출력하십시오.. 따라서 출력은 John, Nick, George입니다. (이 기록에서 우리는 John이 2 개의 메시지를 게시했지만 최종 출력에서는 그의 이름 만 볼 수 있습니다).
이것은 어떻게 든 가능합니까? 미리 감사드립니다.
해결책
노력하다:
$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);
다른 팁
별개의 선택을 선택하십시오
SQL 쿼리를 실행하여 별개의 이름 만 선택할 수 있습니다.
SELECT DISTINCT Name FROM Posts;
이렇게하면 별개의 이름 값으로 구성된 결과 세트가 제공되며 각 고유 값은 세트에서 1 회 반환됩니다.
카운트를 얻으려면 그룹을 사용하여 집계해야합니다.
SELECT
NAME
, COUNT(*) as Posts
FROM
Posts
GROUP BY
NAME
그룹에 반대하지 않는 경우 SQL은 다음과 같습니다.
select count(name) as N, name from posts group by name ;
게시물이 둘 이상인 사람들
select count(name) as N, name from posts group by name having N > 1 ;
제휴하지 않습니다 StackOverflow