是否有可以跳过某些行的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.
答案 0 :(得分:1)
SELECT * FROM hoptable WHERE ID%3 =0 AND ID>1
答案 1 :(得分: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有差距就行不通,就像那个带普通话的男人一样?一个名字的符号说。
模数(%),如果您不知道,则给出除法问题给出的小数位数。所以3/3 = 1,没有小数,所以3%3 = 0,而4/3 = 1.333333 ...,所以4/3等于无穷大(不是真正编程,但足够接近)。
答案 2 :(得分:0)
SET @row_idx := 0;
SELECT *, (@row_idx := @row_idx + 1) AS idx
FROM table
HAVING idx % 3 = 0;
您可能希望包含ORDER BY子句,因此行索引实际上可能有意义。您不能依赖于按ID排序的结果而不指定它。