$m_a=array(1,2,3,4,5,6,7,8,9);
$m_r=count($m_a);
$m_sql="select * from table where ";
for($m_i=0;$m_i<$m_r-1;$m_i++){
   $m_sql.="time>=".$m_a[$m_i]." and time<= ".$m_a[$m_i+1] and ";
}
$m_sql.=" 1<2";
mysql_query($m_sql);

解决方案 »

  1.   

    更改一下:
    $m_a=array(1,2,3,4,5,6,7,8,9);
    $m_r=count($m_a);
    $m_sql="select * from table where ";
    for($m_i=0;$m_i<$m_r-2;$m_i++){
       $m_sql.="( time>=".$m_a[$m_i]." and time<= ".$m_a[$m_i+1] ) or ";
    }
    $m_sql.=" (time>=".$m_a[$m_i]." and time<=".$m_a[$m_i+1].")";
    mysql_query($m_sql);
      

  2.   

    你的思路有点问题(Time>=1 and Time<=2)不就是 Time=1 or Time=2吗?难道time不是整数?
    如果...的话不就是全部了吗?
      

  3.   

    误会了,是这样的。比如有2个字段: num 和 time
    再有一个数组array(0,1,2,3,4,5,6,7,8,9,10)
    我想查出Time>=1 and Time<=2的SUM(num),Time>=2 and Time<=3的SUM(num).....
    能不能用一个语句搞定?
      

  4.   

    $m_a=array(1,2,3,4,5,6,7,8,9);
    $m_r=count($m_a);
    for($m_i=0;$m_i<$m_r-1;$m_i++){
       $m_sql="select sum(num) from table where ";
       $m_sql.="(time>=".$m_a[$m_i]." and time<= ".$m_a[$m_i+1].")";
       mysql_query($m_sql);
       //echo $m_sql."<BR>";
       $m_sql='';
    }
      

  5.   

    什么叫做一个语句搞定,你是要一个PHP语句还是一个SQL语句?
    一个PHP语句不可能.
    一个SQL语句用union联合所有情况的select结果集实现.我不明白,你的数组是用来干什么的?是不是作为SQL语句的参数值?如果是,那么数组与参数的关系你也没给出或者没写明白.
      

  6.   

    这样可以不?
    $arr = array(1,2,3,4,5,6,7,8,9,10)
    $count = count($arr);
    $temp=0;
    $conn = mysql_pconnect(DB_SERVER,USERNAME,PASSWD);for($i=0;$i<$count;$i++){
    if($i==$count) break;//这个是防止$i=10时候报错!就是说到了 >=9 <=10后不查询了
    $sql = "select SUN(num) as num from table where Time>='".$arr[$i]."' and Time<='".$arr[$i+1]."'";
    $result = mysql_query($strSql,$conn));
    $row = mysql_fetch_array($result);
    $temp=$row["num"];
    }