使用SELECT EXISTS查找mysql中是否存在行

时间:2013-03-24 11:45:38

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

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

if(mysql_query(“SELECT EXISTS(SELECT * FROM罚款WHERE SId ='$ sid'和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条件不起作用!!请帮忙

1 个答案:

答案 0 :(得分: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';