我试图在从我的数据库中选择一些东西之后只显示每一行。
我的选择如下:
SELECT * FROM table where partnerID = '1'
现在从该选择查询的结果我想只得到每第2行。
这可能吗?
答案 0 :(得分: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...
}
在旁注中,您可以使用相同的策略仅显示每第3行或每第4行,只需更改模数运算符旁边的数字
if($count % 3 != 0) continue; // Show only every third row
if($count % 4 != 0) continue; // Show only every fourth row
答案 1 :(得分: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
答案 2 :(得分: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
;
答案 3 :(得分:0)
不确定这是否是正确的答案,但看起来您需要使用MOD函数(http://dev.mysql.com/doc/refman/5.0/en/mathematical-functions.html#function_mod)
之类的东西SELECT * FROM `table` WHERE id & 1;
会返回奇数行