如何在mysql select查询中传递数组值

时间:2016-12-14 12:19:27

标签: php mysql arrays

在这个问题“Divide numbers into equal parts to create Sitemap from mysql”的帮助下,我得到了这个结果:

Array ( [0] => 0,500 
        [1] => 500,1000 
        [2] => 1000,1500 
        [3] => 1500,2000 
        [4] => 2000,2500 
        [5] => 2500,2990 )

我的问题是,我想传递上面的数组值来选择查询限制。像这样:

 "SELECT * FROM `table_name` WHERE `rec_id`='1' limit 0 OFFSET 500 " 

等等limit 2500, 2990

怎么做?我是发展新手。请帮我解决。

提前谢谢。

2 个答案:

答案 0 :(得分:1)

这是代码

foreach($arr as $k => $v){

  list($limit, $offset) = explode(','$v);

   $query_arr[] = "SELECT * FROM `table_name` WHERE `rec_id`='1' limit $limit OFFSET $offset";
}

然后根据需要点击$ query_arr

答案 1 :(得分:1)

实际上你想要一个以索引开头的500个结果的分页,对吧?所以限制应该总是500,只有偏移值才会改变。

$queries = [];
$array = Array ( [0] => 0,500 
    [1] => 500,1000 
    [2] => 1000,1500 
    [3] => 1500,2000 
    [4] => 2000,2500 
    [5] => 2500,2990 );

foreach ( $array as $value ){
    $offsets = explode(',', $value);
    $queries[] = "SELECT * FROM `table_name` WHERE `rec_id`='1' limit 500 OFFSET $offsets[0]";
}