반응형
열에서 고유 한 값 선택
다음 유형의 정보가 포함 된 MySQL 테이블이 있습니다.
Date product
2011-12-12 azd
2011-12-12 yxm
2011-12-10 sdx
2011-12-10 ssdd
다음은이 테이블에서 데이터를 가져 오는 데 사용하는 스크립트의 예입니다.
<?php
$con = mysql_connect("localhost","username","password");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("db", $con);
$sql=mysql_query("SELECT * FROM buy ORDER BY Date");
while($row = mysql_fetch_array($sql))
{
echo "<li><a href='http://www.website/". $row['Date'].".html'>buy ". date("j, M Y", strtotime($row["Date"]))."</a></li>";
}
mysql_close($con);
?>
이 스크립트는 테이블의 모든 날짜를 표시합니다 (예 :
12.dec 2011
12.dec.2011
10.dec.2011
10.dec.2011
고유 한 날짜 만 표시하고 싶습니다 (예 :
12.dec.2011
10.dec.2011
MySQL 에서 DISTINCT 연산자를 사용하십시오 .
SELECT DISTINCT(Date) AS Date FROM buy ORDER BY Date DESC;
사용하다
SELECT DISTINCT Date FROM buy ORDER BY Date
그래서 MySQL은 중복을 제거합니다
BTW : SELECT
MySQL에서 큰 결과를 얻을 때 명시 적 열 이름을 사용하면 PHP에서 적은 리소스 를 사용합니다.
이 쿼리를 사용하여 값을 얻으십시오.
SELECT * FROM `buy` group by date order by date DESC
나머지는 Date DESC로 주문해야한다는 점을 제외하고는 거의 정확합니다.
SELECT DISTINCT(Date) AS Date FROM buy ORDER BY Date DESC;
DISTINCT
항상 고유 한 값을 얻는 올바른 선택입니다. 또한 사용하지 않고 대안으로 할 수 있습니다. 그렇습니다 GROUP BY
. 쿼리 끝에 추가하고 열 이름을 추가 한 것입니다.
SELECT * FROM buy GROUP BY date,description
또 다른 DISTINCT
대답이지만 여러 값이 있습니다.
SELECT DISTINCT `field1`, `field2`, `field3` FROM `some_table` WHERE `some_field` > 5000 ORDER BY `some_field`
날짜별로 제품 세부 정보를 JSON으로 출력하려는 경우 이와 같은 것을 사용하십시오.
SELECT `date`,
CONCAT('{',GROUP_CONCAT('{\"id\": \"',`product_id`,'\",\"name\": \"',`product_name`,'\"}'),'}') as `productsJSON`
FROM `buy` group by `date`
order by `date` DESC
product_id product_name date
| 1 | azd | 2011-12-12 |
| 2 | xyz | 2011-12-12 |
| 3 | ase | 2011-12-11 |
| 4 | azwed | 2011-12-11 |
| 5 | wed | 2011-12-10 |
| 6 | cvg | 2011-12-10 |
| 7 | cvig | 2011-12-09 |
RESULT
date productsJSON
2011-12-12T00:00:00Z {{"id": "1","name": "azd"},{"id": "2","name": "xyz"}}
2011-12-11T00:00:00Z {{"id": "3","name": "ase"},{"id": "4","name": "azwed"}}
2011-12-10T00:00:00Z {{"id": "5","name": "wed"},{"id": "6","name": "cvg"}}
2011-12-09T00:00:00Z {{"id": "7","name": "cvig"}}
SQL Fiddle 에서 사용해보십시오
이를 달성하기위한 구체적인 키워드가 있습니다.
SELECT DISTINCT( Date ) AS Date
FROM buy
ORDER BY Date DESC;
필요한 것에 따라 다릅니다.
이 경우에 나는 제안한다 :
SELECT DISTINCT(Date) AS Date FROM buy ORDER BY Date DESC;
필드가 적고의 실행 시간 DISTINCT
이의 실행보다 낮기 때문입니다 GROUP BY
.
다른 경우, 예를 들어 많은 필드가있는 경우 선호합니다.
SELECT * FROM buy GROUP BY date ORDER BY date DESC;
참고 URL : https://stackoverflow.com/questions/8571902/selecting-unique-values-from-a-column
반응형
'Programing' 카테고리의 다른 글
bash에 대한 별칭의 여러 명령 (0) | 2020.05.16 |
---|---|
Xcode 5에서 사용할 수있는 새로운 설명서 명령은 무엇입니까? (0) | 2020.05.16 |
공백이있는 파일 목록을 반복합니다. (0) | 2020.05.16 |
JavaScript를 사용하여 운영 체제 버전을 찾는 방법은 무엇입니까? (0) | 2020.05.16 |
.NET에 사용 가능한 읽기 전용 일반 사전이 있습니까? (0) | 2020.05.16 |