2014-01-20 3 views
0

전자 메일을 통해 테이블 ​​형식으로 결과를 내보내는 쿼리가 있습니다. 내 결과 행으로 절대 내보낼 수 없도록 데이터의 첫 행을 숨기고 싶습니다.데이터베이스 쿼리의 첫 번째 행 숨기기

예 데이터베이스 테이블 :

+------+--------+--------+ 
|Number|Language|Date | 
+------+--------+--------+ 
|2039 |text 1 |20/01/14| 
+------+--------+--------+ 
|1  |text 2 |20/01/14| 
+------+--------+--------+ 
|2  |text 3 |20/01/14| 
+------+--------+--------+ 

내가 지금 사용하고있는 쿼리는 다음과 같습니다

SELECT 
    COUNT(*) as `count`, `lang`, DATE(NOW()) as `week_ending` 
FROM 
    mydata.table 
WHERE 
    `date` > DATE_ADD(DATE(NOW()), INTERVAL - 1 WEEK) AND 
    `date` < DATE(NOW()) 
GROUP BY `lang` , DATE(NOW()); 

이 가능 행 2039 텍스트 1 20/01/14를 숨길 수 있나요

+0

매우 큰 LIMIT와 함께 OFFSET 1을 사용할 수 있습니다. – Strawberry

답변

3

SELECT COUNT(*) as `count`,`lang`, DATE(NOW()) as `week_ending` FROM mydata.table WHERE `date` > DATE_ADD(DATE(NOW()), INTERVAL -1 WEEK) AND `date` < DATE(NOW()) GROUP BY `lang`, DATE(NOW()) LIMIT 1,x;

X를 대체 할 경우 where 절

당신이 오름차순 번호로 주문하는 경우
WHERE Number < MAX(Number) 

후 추가 다음 내림차순으로 숫자 열을 기준으로 주문하는 경우 모든 기록을 담을 수있는 번호가 있어야합니다.

또는 x 대신 18446744073709551615를 사용합니다. 이것은 큰 INT INT 부호없는 값의 최대 값입니다.

0

정말 순서에 따라 먼저 나타나는 것으로 생각되는 행에 따라 다릅니다. 주문을 지정하지 않으면 일반적으로 게재 신청서에 따라 기록을 얻습니다.

하면 절은

WHERE Number > MIN(Number) 
0

쿼리 끝에 LIMIT 1, N을 사용하십시오.

여기서 N은 검색 할 행의 수입니다.

0

'number'가 기본 키인 경우 다음 쿼리를 사용하여 동일한 결과를 얻을 수도 있습니다.

SELECT 
    COUNT(*) as 'count', t1.language, DATE(NOW()) as 'week_ending' 
FROM 

(select * from 'mydata.table') t1 left join 
(select * from 'mydata.table' limit 1) t2 on t1.number = t2.number 
where t2.number is null 

And 
t1.date > DATE_ADD(DATE(NOW()), INTERVAL - 1 WEEK) 
    AND t1.date < DATE(NOW()) 
GROUP BY t1.language , DATE(NOW()); 
관련 문제