如果值在数据库中存在,我如何更新值,否则我想插入它

时间:2016-09-05 05:46:36

标签: php mysql phpmyadmin insert sql-update

我有一个名为PriceIK的表(priceCount,propertyID,bestPrice)。

现在我要插入一条记录以及propertyID和bestPrice(priceCount是自动增量) 如果propertyID存在,我想更新各自的bestPrice值。 如果属性值不存在,我想插入新记录(propertyID和bestPrice)

  • 我使用php和phpMyAdmin
  • 我是初学者,我真的需要你的帮助 提前谢谢

5 个答案:

答案 0 :(得分:2)

根据我的理解,这就是你需要的东西。

INSERT INTO PriceIK (propertyID,bestPrice) VALUES(1 , 5000) ON DUPLICATE KEY UPDATE bestPrice="5000"

我使用了propertyID = 1和bestPrice = 5000作为默认值

希望这有帮助

答案 1 :(得分:1)

为了执行此操作,您可以更喜欢使用MySQL INSERT ON DUPLICATE KEY UPDATE statement

INSERT ON DUPLICATE KEY UPDATE是INSERT语句的MySQL扩展。如果在INSERT语句中指定ON DUPLICATE KEY UPDATE选项,并且新行导致UNIQUEPRIMARY KEY索引中出现重复值,则MySQL会根据新值对旧行执行更新

INSERT ON DUPLICATE KEY UPDATE语句的语法如下:

INSERT INTO table(column_list)
VALUES(value_list)
ON DUPLICATE KEY UPDATE column_1 = new_value_1, column_2 = new_value_2, …;

INSERT语句的唯一补充是ON DUPLICATE KEY UPDATE子句,您可以在其中指定以逗号分隔的列分配列表。

MySQL根据它执行的操作返回受影响的行数。

  1. 如果MySQL将该行插入新行,则受影响的行数为1。
  2. 如果MySQL更新当前行,则受影响的行数为2。
  3. 如果MySQL使用其当前值更新当前行,则受影响的行数为0.
  4. 插入声明:

    INSERT INTO devices(name) VALUES ('Printer') ON DUPLICATE KEY UPDATE name = 'Printer';
    

    这是一个Insert语句,因为devices表不包含Printer值,因此它会插入它。

    更新声明:

    INSERT INTO devices(id,name) VALUES (4,'Printer') ON DUPLICATE KEY UPDATE name = 'Server';
    

    这将更新表,因为已存在打印机,因此它将表值更新为服务器。

答案 2 :(得分:0)

$sql="select * from PriceIK where propertyID='$_POST['property']'";
$query=mysqli_query($con,$sql);// Here `$con` is the DB connectivity variable
$num=$query->num_rows;// This will get the count of the executed query
if($num>0){         
$up="Update PriceIK set bestPrice='$_POST['price']' where propertyID='$_POST['property']'";
$qry=mysqli_query($con,$up); // Here `$con` is the DB connectivity variable
}else{          
$ins="Insert into PriceIK(propertyID,bestPrice) values('".$_POST['property']."','".$_POST['price']."')";
$qry=mysqli_query($con,$ins);  // Here `$con` is the DB connectivity variable       
}

试试吧

答案 3 :(得分:0)

使用INSERT ... ON DUPLICATE KEY UPDATE

INSERT INTO table (a,b,c) VALUES (1,2,3)
  ON DUPLICATE KEY UPDATE c=c+1;

UPDATE table SET c=c+1 WHERE a=1;

答案 4 :(得分:0)

在PHP中尝试以下代码

$(document).ready(function(){

    if ($(window).width() < 768) {

        $("ul").attr({id:"dLabel",type:"button",data-toggle:"dropdown",aria-haspopup:"true",aria-expanded="false"});


        $("ul").addClass("dropdown-menu");

        //and rest code..........

    }

    else {

        // go back Default...
    }

})