MySQL में CAST(... AS SIGNED) का उपयोग करके अनसाइन्ड इंटीजर मान को -1 से गुणा करके ऋणात्मक मान प्राप्त करें।
उदाहरण: टेबल बनाना और डेटा डालना
mysql> CREATE TABLE DemoTable (
-> Value INT
-> );
Query OK, 0 rows affected (0.80 sec)
mysql> INSERT INTO DemoTable VALUES(10), (20), (100);
सभी रिकॉर्ड देखना
mysql> SELECT * FROM DemoTable;
आउटपुट
+-------+ | Value | +-------+ | 10 | | 20 | | 100 | +-------+ 3 rows in set (0.00 sec)
-1 से गुणा करके ऋणात्मक मान प्राप्त करना
mysql> SELECT CAST(Value * -1 AS SIGNED) FROM DemoTable;
आउटपुट
+--------------------------+ | CAST(Value * -1 AS SIGNED) | +--------------------------+ | -10 | | -20 | | -100 | +--------------------------+ 3 rows in set (0.00 sec)
व्याख्या:
Value * -1अंकगणितीय ऑपरेशन करता है- यदि Value UNSIGNED है, तो परिणाम भी UNSIGNED होगा (ओवरफ्लो/रैप-अराउंड हो सकता है)
CAST(... AS SIGNED)परिणाम को हस्ताक्षरित पूर्णांक में परिवर्तित करता है, जिससे ऋणात्मक मान सही ढंग से प्रदर्शित होते हैं
सरल विकल्प:
SELECT -Value FROM DemoTable; -- सीधा ऋणात्मक SELECT Value * -1 FROM DemoTable; -- गुणा SELECT 0 - Value FROM DemoTable; -- घटाव
ये स्वचालित रूप से साइन्ड परिणाम देते हैं (MySQL अभिव्यक्ति संदर्भ में)।
उपयोग का मामला: लेखांकन (डेबिट/क्रेडिट), दिशा उलटना, अंतर गणना आदि।