Php 如何跳过mysql中的每一行?
我在mysql中有一个表,我正在从这个表中获取结果。但是我不想获取这个表中的所有行,我只想每隔一行获取一行。因此,首先获取第一行,然后跳过第二行,获取第3行,然后跳过第4行,以此类推 有没有办法做到这一点,如果有,请有人告诉我怎么做 我试过这个: 功能:Php 如何跳过mysql中的每一行?,php,mysql,Php,Mysql,我在mysql中有一个表,我正在从这个表中获取结果。但是我不想获取这个表中的所有行,我只想每隔一行获取一行。因此,首先获取第一行,然后跳过第二行,获取第3行,然后跳过第4行,以此类推 有没有办法做到这一点,如果有,请有人告诉我怎么做 我试过这个: 功能: function blocked_users_list() { global $connection; global $_SESSION; global $profile_
function blocked_users_list() {
global $connection;
global $_SESSION;
global $profile_id;
$query = "SELECT
baseview.*
@odd:=1-@odd AS even
FROM
(
SELECT *
FROM ptb_block_user
WHERE
WHERE ptb_block_user.blocked = '1'
AND ptb_block_user.blocked_id = ".$_SESSION['user_id']."
) AS baseview,
(
SELECT @odd:=0
) AS filter
WHERE
even=1
";
$blocked_users_list = mysql_query($query, $connection);
confirm_query($query, $connection);
return $blocked_users_list;
}
php:
在查询中执行此操作:
SELECT *
FROM (
SELECT
@row := @row +1 AS rownum, [column name]
FROM (
SELECT @row :=0) r, [table name]
) ranked
WHERE rownum % [n] = 1
使用变量记录索引,然后使用mod 2检查(
$ind%2
)-这将返回0或1
<?php
$users_list = users_list();
$ind = 0;
while ($user = mysql_fetch_array($users_list)) {
if(($ind++)%2) echo "something";
}
?>
假设您有这样一个查询
SELECT
col1 AS colA,
col2 AS colB
FROM
sometable
WHERE
something=17
获取所有行作为基线。然后,您可以使用
SELECT
baseview.*
@odd:=1-@odd AS even
FROM
(
SELECT
col1 AS colA,
col2 AS colB
FROM
sometable
WHERE
something=17
) AS baseview,
(
SELECT @odd:=0
) AS filter
WHERE
even=1
您可以在mysql中使用模数(一个查询)
检索所有奇数ID。为什么要每隔一行,该行中是否存在除每隔一行之外可以识别的内容?可能重复的内容请检查我更新的问题,以查看我是否正确执行了此操作thanks@NickJames我通常的回答是“它有效吗”?如果是,那么你是正确的,如果不是张贴错误。错误列在问题中,不,它不起作用。thanks@NickJames这意味着查询失败,请使用mysql_error()查看原因。
SELECT
col1 AS colA,
col2 AS colB
FROM
sometable
WHERE
something=17
SELECT
baseview.*
@odd:=1-@odd AS even
FROM
(
SELECT
col1 AS colA,
col2 AS colB
FROM
sometable
WHERE
something=17
) AS baseview,
(
SELECT @odd:=0
) AS filter
WHERE
even=1
select * from `table` where `id` % 2 = 1