1

DB から何かを選択した後、2 行ごとにのみ表示しようとしています。

私の選択は次のようになります。

SELECT * FROM table where partnerID = '1'

その選択クエリの結果から、2 行ごとに取得したいと考えています。

それは可能ですか?

4

4 に答える 4

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
于 2012-05-22T15:52:56.523 に答える
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...
}

On a side note, you can use this same strategy to only show every 3rd row, or every 4th row, simply by changing what number you put next to the modulus operator

if($count % 3 != 0) continue; // Show only every third row
if($count % 4 != 0) continue; // Show only every fourth row
于 2012-05-22T15:48:45.203 に答える
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
;
于 2012-05-22T15:58:00.847 に答える
0

これが正しい答えかどうかはわかりませんが、MOD関数( http://dev.mysql.com/doc/refman/5.0/en/mathematical-functions.html#function_mod)のようなものを使用する必要があるようです。

SELECT * FROM `table` WHERE id & 1;

奇数行を返します

于 2012-05-22T15:48:31.650 に答える