2010-12-23 19 views

Respuesta

24

se puede ver la solución en este artículo

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

vistazo al: El elegante manera, crea una unión para obtener los datos de las 2 filas para ser intercambiados en 1 fila, después de que hacen una actualización es fácil.

ejemplo:

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

Qué pasa si usted desea intercambiar las últimas 2 vueltas? – Alucard

+2

Parece que tampoco funciona en columnas únicas. – nickdnk

9
UPDATE my_table SET [email protected]:=a, a=b, [email protected]; 
+0

Su solución es para intercambiar dos columnas, la pregunta era sobre el intercambio de dos filas. – redux

+0

Estaba buscando cómo cambiar dos columnas, gran solución :) – TMMDev

+0

es útil y simple. – tyan

Cuestiones relacionadas