运行WHERE子句后,仅显示每第2行

use*_*767 1 php mysql

在从我的数据库中选择一些内容之后,我只想显示每一行.

我的选择看起来像这样:

SELECT * FROM table where partnerID = '1'
Run Code Online (Sandbox Code Playgroud)

现在从选择查询的结果我想只获得每第2行.

那可能吗 ?

Jef*_*ert 6

$count = 0;
while($row = mysql_fetch_array($results)) {
    $count++;
    if($count % 2 == 1) continue;

    // What you want to do with the rows you don't want to skip here...
}
Run Code Online (Sandbox Code Playgroud)

在旁注中,您可以使用相同的策略仅显示每第3行或每第4行,只需更改模数运算符旁边的数字即可

if($count % 3 != 0) continue; // Show only every third row
if($count % 4 != 0) continue; // Show only every fourth row
Run Code Online (Sandbox Code Playgroud)


ass*_*ias 6

SELECT * FROM (
    SELECT  @n := @n + 1 AS position,
            t.*
    FROM (SELECT @n:=0) counter,
         table t
    WHERE partnerID = 1)
AS query
WHERE MOD(position,2) = 0
Run Code Online (Sandbox Code Playgroud)


Cyl*_*ric 5

您可以通过以下方式执行此操作:

SELECT * FROM
(
    SELECT
      @I := @I + 1 AS rowNumber,
      tablename.*

    FROM
      tablename,
      (SELECT @I := 0) VT1

    WHERE partnerID = 2

    ORDER BY ID
) NumberedRows
WHERE MOD(rowNumber, 2)=0
;
Run Code Online (Sandbox Code Playgroud)