INSERT ... SELECT में अंकगणितीय ऑपरेशन
एक टेबल से डेटा पढ़कर दूसरे टेबल में डालते समय मान को नेगेटिव बनाने के लिए -1 * से गुणा करें।
स्रोत टेबल
mysql> create table recordsDemo (UserId int, Value int); mysql> INSERT INTO recordsDemo VALUES (1,10), (3,598), (5,786), (7,189), (9,345);
+--------+-------+ | UserId | Value | +--------+-------+ | 1 | 10 | | 3 | 598 | | 5 | 786 | | 7 | 189 | | 9 | 345 | +--------+-------+
लक्ष्य टेबल बनाना
mysql> create table PositiveToNegativeValueDemo (
-> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> Money int
-> );
इन्सर्ट करते समय नेगेटिव करना
mysql> INSERT INTO PositiveToNegativeValueDemo (Id, Money)
-> SELECT UserId, (-1 * Value) FROM recordsDemo;
Query OK, 5 rows affected (0.15 sec)
परिणाम
+------+-------+ | Id | Money | +------+-------+ | 1 | -10 | | 3 | -598 | | 5 | -786 | | 7 | -189 | | 9 | -345 | +------+-------+
वैकल्पिक तरीके
SELECT UserId, -Value FROM recordsDemo(यूनरी माइनस)SELECT UserId, 0 - Value FROM recordsDemoSELECT UserId, Value * -1 FROM recordsDemo
उपयोग के मामले
- लेखांकन: खर्च/डेबिट को नेगेटिव स्टोर करना
- तापमान अंतर
- कोऑर्डिनेट दिशा बदलना