PHP sql数据库,插入UNIQUE值

标签 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(包含唯一值),并且仅当 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++];
      }

感谢大家的帮助,并对我的英语不好表示歉意。

最佳答案

这里的数学听起来足够复杂,您可能最好在 PHP 中完成复杂的事情(对值进行平均并确定值是否唯一),然后使用几个简单的 MySQL 来完成声明。

这可能可以在纯 MySQL 中通过一些技巧来完成,但通常不值得为此花费时间和复杂性。 (想象一下,六个月后您将不得不调试那个怪物 SQL 查询!)

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

关于PHP sql数据库,插入UNIQUE值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29969968/

相关文章:

php - 尝试使用php编辑/删除sql数据库上的记录

php - 返回 PHP 中 MySQL 插入的对象

php - 如何卸载php 7.1

php - 如何开始使用 PHP 和 MySQL 中的 session ID?

php - Laravel 日志记录不适用于作业处理方法

mysql - nodejs mysql bulk INSERT on DUPLICATE KEY UPDATE

MySql Group_concat - 不希望从Where 子句中排除行

mysql - 在 mysql 中寻找类型转换功能

mysql - 组合键中的 auto_increment 用法

php - preg_split() 的正则表达式换行