timmyd Posted May 17, 2008 Share Posted May 17, 2008 if i want to INSERT unless it already exists than i want to update for this INSERT ON DUPLICATE can be used INSERT INTO table (a,b,c) VALUES (1,2,3) ON DUPLICATE KEY UPDATE c=c+1; but what if i don't know the KEY which is in my opinion in most cases the isue since it start off with and INSERT, can is still use this function differently for example: INSERT INTO table (a,b,c) VALUES (1,2,3) ON DUPLICATE b=2 AND a=1 UPDATE c=c+1; or something like this? Quote Link to comment Share on other sites More sharing options...
cooldude832 Posted May 17, 2008 Share Posted May 17, 2008 if you doing it in php its simple to do in your processing <?php $q = "Select id from `table` where this=that limit 1"; $r = mysql_query($q) or die(mysql_error()."<Br /><Br />".$q); if(mysql_num_rows($r) >0){ $row = mysql_fetch_array($r); $q = "Update `table` SET this=that where ID = '".$row[0]."'"; } else{ $q = "INSERT INTO `table` (FIELDS) VALUES()"; } $r = mysql_query($q) or die(mysql_error()."<Br /><br />".$q); ?> Quote Link to comment Share on other sites More sharing options...
fenway Posted May 18, 2008 Share Posted May 18, 2008 The whole point is NOT to rely on PHP, because otherwise this operation isn't atomic. The "KEY" is a unique key. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.