PHP sql数据库,插入UNIQUE值

时间:2015-04-30 14:07:10

标签: php mysql

我正在使用sql数据库(phpMyadmin)和编程语言PHP。 我有一张数据表,例如:

T1: 145 138.8 110.6 1759.4 1400.9 1891.4 1755.4 1760.4

T2: 141.9 110.6 1400.9 1891.4 1758.4

我的问题> 是否存在sql语法,能够平均处于一个阈值的值(如> 1755.4,1760.4,1759.4或145,138.8)并将它们作为独特的值插入到另一个表中?

我需要的是从T1创建T2(包含UNIQUE值),并且只有在它们不存在于T2中时才插入它们。

我试图循环抛出2个数组(1starray = T1和2ndarray = T2)。并比较array1和array2中的数据,并尝试插入可以唯一的值。

for($z = 0; $z<$numberApp; $z++) { 
while($j<$numberAbs-1){
     $Abs=$arrayabs[$j];
     $state_change = (abs($Abs - abs($previous_Abs)));
      if ($state_change>100){
        $instantChange = True;
        echo "<br>"." better than tolerance: " . $instantChange;
             }
     else  {
      $instantChange = False;
       echo "<br>"." lower than tolerance" . $instantChange;
     }

     //if($state_change = (abs($some_item - $previous_item)<= $tolerance)){
     if($Abs != $previous_Abs){
      echo "<br>" ."   some_item : "  .$Abs."   previous_item : "  .$previous_Abs;
     }

     //$lastAbs=$arrayabs[$j];
     //echo "  next_item : " .$lastAbs;

      if ($instantChange == True and $onChange == False){
      $Abs2 [] = $podiel;
      $finalPower = $podiel;
      }
     if ($instantChange){
        $D=0;
        echo "ABSOLUT >>> " .$lastAbs;
 $percentual1 = ($power_app[$z] * 0.9);
  $percentual2 = ($power_app[$z] * 1.1);

 if(($lastAbs<$percentual1 || $lastAbs>$percentual2)){
     $user = 'root';
      $pass = 'password';
      $db = 'vypis';
      //if($N>0){
$db = new mysqli('localhost', $user, $pass, $db) or die();
      $sql = "INSERT INTO vypis.nilm_app2(power) VALUES ('$lastAbs')";

       if(mysqli_query($db, $sql)){

    echo "Records added successfully.";

} else{

    echo "ERROR: Could not able to execute $sql. " . mysqli_error($db);

}
}
//$power_app[$z++];
      }

感谢所有愿意帮助的人,并为我糟糕的英语道歉。

1 个答案:

答案 0 :(得分:0)

这里的数学听起来很复杂,你可能最好不要做复杂的事情(平均值并确定值是否是唯一的)在PHP 中,然后用一对夫妇完成简单的MySQL语句。

这可能可以在纯MySQL中完成,但有点诡计,但通常不值得创建时间和复杂性。 (想象一下,你必须在六个月后调试那个怪物SQL查询!)

相比之下,在PHP中获取一些值并对它们取平均值是微不足道的;运行快速MySQL查询以确定值是否唯一也是微不足道的。因此,如果你不确定如何将它们混合成一个大的SQL语句,那么首先只需要在PHP代码中处理它们作为单独的步骤!然后,如果出现性能问题,你可以考虑如何组合它们(但至少到那时你已经有了一些有用的东西)。