0

是否有可以跳一些行的mysql语法?

例如

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

SELECT * FROM table HOP BY 2

所以结果将是

id          value
3             c
6             f
9             i

或者

id          value
1             a 
4             d
7             g

注意:我们不知道行的实际 ID,所以我们不能使用这样的 WHERE 子句

WHERE ID is a multiple of 3 or etc.
4

3 回答 3

1
SELECT * FROM hoptable WHERE ID%3 =0 AND ID>1
于 2013-10-19T06:08:47.373 回答
1

我没有意识到您可以在 sql 查询中进行数学运算。学到了一些新东西。凉爽的。这是选择 1、4 和 7 的代码。

$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'];
}

我不明白为什么如果 id 有空格它就不起作用,就像那个人一样?mandarin?表示名称的符号。

模数(%),如果你不知道,给出除法问题给出的小数位数。所以 3/3=1,没有小数,所以 3%3=0,而 4/3=1.333333...,所以 4/3 等于无穷大(实际上不是编程,但足够接近)。

于 2013-10-19T06:16:53.440 回答
0
SET @row_idx := 0;
SELECT *, (@row_idx := @row_idx + 1) AS idx
FROM table
HAVING idx % 3 = 0;

您可能希望包含一个 ORDER BY 子句,以便行索引实际上是有意义的。您不能依赖按 id 排序的结果而不指定它。

于 2013-10-19T06:32:40.960 回答