vineld Posted July 26, 2009 Share Posted July 26, 2009 When I have a MySQL field that is a result of two or more others (it is sometimes a good idea to store such value as well even if it is redundant data) I usually do the math in the same sql sentence like this: UPDATE tbl SET f1 = f1 + 1, f2 = f2 + 7, f3 = f2 * f1/3 WHERE blabla This has seemed to work so far but I can't help but wonder if this code is secure or is there a risk of a faulty f3 value? Quote Link to comment https://forums.phpfreaks.com/topic/167449-post-insert-calculations-in-self-a-bad-idea/ Share on other sites More sharing options...
abazoskib Posted July 26, 2009 Share Posted July 26, 2009 i can't imagine a faulty value occurring. maybe if you gave a scenario of what you would be doing would help Quote Link to comment https://forums.phpfreaks.com/topic/167449-post-insert-calculations-in-self-a-bad-idea/#findComment-883506 Share on other sites More sharing options...
vineld Posted July 27, 2009 Author Share Posted July 27, 2009 What I am thinking is this: 1. The operations f1 + 1, f2 = f2 + 7 will have to be done first. 2. f3 will then have to be calculated using the two first fields. The question is really this one: Is this particular row locked while doing all three operations and will the last one always be done last in a query? Quote Link to comment https://forums.phpfreaks.com/topic/167449-post-insert-calculations-in-self-a-bad-idea/#findComment-883926 Share on other sites More sharing options...
fenway Posted August 3, 2009 Share Posted August 3, 2009 Well, mysql goes from left-to-right, so you should be ok. Quote Link to comment https://forums.phpfreaks.com/topic/167449-post-insert-calculations-in-self-a-bad-idea/#findComment-889931 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.