17

Is there a query with which i can exchange the values of two rows with single query?

Haim Evgi
  • 123,187
  • 45
  • 217
  • 223
S L
  • 14,262
  • 17
  • 77
  • 116

2 Answers2

27

you can see the solution in this article

http://www.microshell.com/database/sql/swap-values-in-2-rows-sql/

look at the : The elegant way , make a join to get the data from the 2 rows to be swapped in 1 row, after that make an update is easy.

example :

UPDATE
rules AS rule1
JOIN rules AS rule2 ON
( rule1.rule_id = 1 AND rule2.rule_id = 4 )
SET
rule1.priority = rule2.priority,
rule2.priority = rule1.priority
;
Haim Evgi
  • 123,187
  • 45
  • 217
  • 223
9
UPDATE my_table SET a=@tmp:=a, a=b, b=@tmp;
Juan Mellado
  • 14,973
  • 5
  • 47
  • 54
Rajaa
  • 107
  • 1
  • 2