2013-03-24 60 views
0

如果表FINES中存在具有所需值的行,那麼我只想更新字段 否則我想在表中添加一個新行。使用SELECT EXISTS查找在mysql中是否存在行

如果(的mysql_query( 「SELECT EXISTS(SELECT * FROM罰金其中SID = '$ SID' 和學期= '$ 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)"); 

但如果條件不起作用!請幫助

回答

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'; 
+0

謝謝你這麼睦h的快速回復....它的工作..... – user2202230 2013-03-24 12:04:19

+0

不客氣':D'很高興幫助你。 – 2013-03-24 12:14:49