Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer
 
PerlMonks  

Re: Re: non-perl SQL question

by CountZero (Bishop)
on Dec 31, 2003 at 08:22 UTC ( [id://317855]=note: print w/replies, xml ) Need Help??


in reply to Re: non-perl SQL question
in thread non-perl SQL question

Very clever solution (you see: it pays to have attended math-class!) but only if the field you try to swap is not a primary key field or indexed by "UNIQUE". Then it burps an error: #1062 - Duplicate entry '6' for key 1

CountZero

"If you have four groups working on a compiler, you'll get a 4-pass compiler." - Conway's Law

Replies are listed 'Best First'.
Re: Re: Re: non-perl SQL question
by Roger (Parson) on Dec 31, 2003 at 11:59 UTC
    Thanks. ;-)

    I first had this idea 12 years ago, during a first year C programming lecture at University. The professor declared in the class that if you want to swap the values of two variables, you have to do it with a temporary variable:
    X=5 Y=6 # to swap X and Y, introduce a temporary variable Z Z=X X=Y Y=Z
    I challenged his declaration and provided the following solution in 2 steps without a third variable:
    X=X+Y Y=X-Y X=X-Y # I know this solution is not perfect: # when X and Y are big, there is a danger of overflow.
    The lecturer was amazed and gave me an 'A' for the subject. *grin*

    The solution set order_id=11-order_id where order_id in (5,6) is just another variant of the same trick.

    Update: Thanks rkg to point out the missing bit. My memory got rusty. The original challenge was to swap the values without using a third temporary variable.

      am i missing something?
      x=5 y=6 x=x+y # x = 5+ 6 = 11, yes? y=x-y # y = 11 - 6 = 5, yes?
      But of course only with numerical values, not with string data.

      CountZero

      "If you have four groups working on a compiler, you'll get a 4-pass compiler." - Conway's Law

      Thanks alot. You saved me now half a year later

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://317855]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others drinking their drinks and smoking their pipes about the Monastery: (4)
As of 2024-04-18 20:04 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found