【问题标题】:Finding whether a row exists in mysql or not using SELECT EXISTS使用 SELECT EXISTS 查找 mysql 中是否存在行
【发布时间】:2013-03-24 11:45:38
【问题描述】:

如果表 FINES 中存在具有所需值的行,那么我只想更新字段 否则我想在表格中添加一个新行。

if (mysql_query("SELECT EXISTS(SELECT * FROM fines WHERE SId='$sid' AND Semester='$sem')")>=1)

 mysql_query("UPDATE fines SET fines.TFine=fines.TFine+'$fine' WHERE SId='$sid' AND Semester='$sem'");           

否则

   mysql_query("INSERT INTO fines(SId, Semester, TFine, Flag) VAlUES('$sid','$sem', '$fine', 0)");

但是 if 条件不起作用!!请帮忙

【问题讨论】:

    标签: mysql sql select sql-update sql-insert


    【解决方案1】:

    使用 MySQL 的INSERT ... ON DUPLICATE KEY UPDATE,如果记录已经存在则更新该记录,如果不存在则插入。

    您需要做的第一件事是在一个或多个列上指定unique 约束,

    ALTER TABLE fines ADD CONSTRAINT tb_uq UNIQUE (SId, Semester)
    

    一旦你执行了语句,你可以简单地创建一个这样的语句,

    INSERT INTO fines(SId, Semester, TFine, Flag) 
    VALUES ('$sid','$sem', '$fine', 0)
    ON DUPLICATE KEY UPDATE TFine = TFine +  '$fine';
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-12-24
      • 2011-05-27
      • 1970-01-01
      • 2012-02-08
      • 2016-11-01
      • 1970-01-01
      • 2016-12-05
      相关资源
      最近更新 更多