2013-10-19 2 views
0

일부 행을 돌릴 수있는 mysql 구문이 있습니까? 예를 들어일부 행을 건너 뛰는 동안 mysql을 선택하십시오.

2

BY 테이블 HOP FROM

id   value 
1    a 
2    b 
3    c 
4    d 
5    e 
6    f 
7    g 
8    h 
9    i 

SELECT * 그래서 결과는

id   value 
3    c 
6    f 
9    i 

또는

id   value 
1    a 
4    d 
7    g 

를 적어 둡니다 될 것입니다 : 우리는 돈 ' 실제 ID를 알지 못한다. 행 그래서 우리는 당신이 SQL 쿼리에서 계산을 할 수있는 실현하고 있지 않습니다

WHERE ID is a multiple of 3 or etc. 
+0

간단한 PHP 응답을 제공 할 수는 있지만 간단한 PHP 응답을 제공 할 수는 있지만이 작업을 수행하는 SQL 메서드는 없다고 생각합니다. –

+0

대체 @JamesG를 제공 할 수 있습니까? –

+0

HAVING CLAUSE –

답변

1

같은 WHERE 절을 사용할 수 없습니다. 새로운 것을 배웠습니다. 시원한. 여기에 ID가 차이가있는 경우는? 만다린과 사람으로, 작동하지 않을 이유는 1, 4,

$stmt = mysqli_prepare($connection, "SELECT * FROM users WHERE (ID+2)%3 = 0 AND ID>1"); 
mysqli_stmt_execute($stmt); 
$result = mysqli_stmt_get_result($stmt); 
while($row = mysqli_fetch_assoc($result)){ 
    echo $row['username']; 
} 

7. 내가 볼 수없는 선택 것이다 코드는? 이름을위한 상징은 말했다.

모뮬 (%)을 모르는 경우 나누기 문제로 인한 소수점 이하 자릿수를 제공합니다. 그래서 3/3 = 1, 소수 자릿수가 없으므로 3 % 3 = 0, 4/3 = 1.333333 ...이므로 4/3은 무한대와 같습니다 (실제로 프로그래밍에는 없지만 충분히 가깝습니다).

1
SELECT * FROM hoptable WHERE ID%3 =0 AND ID>1 
+2

을 사용하여 시도하는 것보다 where 절을 사용하지 않으려는 경우 'id'에 간격이 있으면 작동하지 않습니다. –

+0

http://sqlfiddle.com/#!2/35173/1 –

0
SET @row_idx := 0; 
SELECT *, (@row_idx := @row_idx + 1) AS idx 
FROM table 
HAVING idx % 3 = 0; 

실제로 행 인덱스가 실제로 의미가있을 수 있도록 ORDER BY 절을 포함하고자합니다. id를 지정하지 않고 정렬 된 결과에 의존 할 수 없습니다.

관련 문제