Heim >Datenbank >MySQL-Tutorial >Eine Erklärung der zweispaltigen Datenmethode in der MySQL-Austauschtabelle

Eine Erklärung der zweispaltigen Datenmethode in der MySQL-Austauschtabelle

jacklove
jackloveOriginal
2018-06-09 09:40:592014Durchsuche

1. Erstellen Sie Tabellen und Datensätze zum Testen

CREATE TABLE `product` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '产品id', `name` varchar(50) NOT NULL COMMENT '产品名称', `original_price` decimal(5,2) unsigned NOT NULL COMMENT '原价', `price` decimal(5,2) unsigned NOT NULL COMMENT '现价', PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;INSERT INTO `product` (`id`, `name`, `original_price`, `price`) VALUES (NULL, '雪糕', '5', '3.5'), 
(NULL, '鲜花', '18', '15'), 
(NULL, '甜点', '25', '12.5'), 
(NULL, '玩具', '55', '45'), 
(NULL, '钱包', '285', '195');

2. Tauschen Sie die Werte von original_price und price aus

Neulinge können die folgenden Methoden verwenden, um

mysql> select * from product;
+----+--------+----------------+--------+| id | name   | original_price | price  |
+----+--------+----------------+--------+|  1 | 雪糕   |           5.00 |   3.50 |
|  2 | 鲜花   |          18.00 |  15.00 |
|  3 | 甜点   |          25.00 |  12.50 |
|  4 | 玩具   |          55.00 |  45.00 ||  5 | 钱包   |         285.00 | 195.00 |
+----+--------+----------------+--------+5 rows in set (0.00 sec)
Aber das Ergebnis dieser Ausführung führt nur dazu, dass die Werte von original_price und price beide der Wert von price sind, da die Aktualisierung sequentiell erfolgt.

führt zuerst
original_price=price aus, den Wert von „original_price“ wurde auf „price“ aktualisiert. Führen Sie dann
price=original_price aus, was keiner Aktualisierung entspricht.

Ausführungsergebnis:

update product set original_price=price,price=original_price;

Die korrekte Austauschmethode lautet wie folgt:

mysql> select * from product;
+----+--------+----------------+--------+| id | name   | original_price | price  |
+----+--------+----------------+--------+|  1 | 雪糕   |           5.00 |   3.50 |
|  2 | 鲜花   |          18.00 |  15.00 |
|  3 | 甜点   |          25.00 |  12.50 |
|  4 | 玩具   |          55.00 |  45.00 ||  5 | 钱包   |         285.00 | 195.00 |
+----+--------+----------------+--------+5 rows in set (0.00 sec)
mysql> update product set original_price=price,price=original_price;
Query OK, 5 rows affected (0.00 sec)
Rows matched: 5  Changed: 5  Warnings: 0mysql> select * from product;
+----+--------+----------------+--------+| id | name   | original_price | price  |
+----+--------+----------------+--------+|  1 | 雪糕   |           3.50 |   3.50 |
|  2 | 鲜花   |          15.00 |  15.00 |
|  3 | 甜点   |          12.50 |  12.50 |
|  4 | 玩具   |          45.00 |  45.00 ||  5 | 钱包   |         195.00 | 195.00 |
+----+--------+----------------+--------+5 rows in set (0.00 sec)

Ausführungsergebnisse:

update product as a, product as b set a.original_price=b.price, a.price=b.original_price where a.id=b.id;

In diesem Artikel wird die zweispaltige Datenmethode in der MySQL-Austauschtabelle erläutert. Weitere Informationen finden Sie auf der chinesischen Website von PHP.

Verwandte Empfehlungen:

So generieren Sie eine zufällige Dezimalmethode von 0 bis 1 über PHP

Informationen zur Verwendung der MySQL-Zeitstempelformatierungsfunktion from_unixtime Anleitung

Anleitung zur Verwendung der MySQL-Funktionen concat und group_concat

Das obige ist der detaillierte Inhalt vonEine Erklärung der zweispaltigen Datenmethode in der MySQL-Austauschtabelle. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn