MySQL में REPLACE() और SUM() का उपयोग करके मुद्रा चिह्न वाले मानों का योग करना
जब कॉलम में मुद्रा चिह्न (जैसे €, $, ₹) के साथ मान संग्रहीत हों, तो REPLACE() से चिह्न हटाकर SUM() से योग करें।
उदाहरण के साथ पूर्ण कार्यान्वयन
टेबल बनाना
mysql> CREATE TABLE DemoTable616 (Price VARCHAR(100));
रिकॉर्ड डालना (यूरो चिह्न के साथ)
mysql> INSERT INTO DemoTable616 VALUES('€200.00'), ('€300.00'), ('€500.00');
सभी रिकॉर्ड देखना
mysql> SELECT * FROM DemoTable616;
आउटपुट:
+-----------+
| Price |
+-----------+
| €200.00 |
| €300.00 |
| €500.00 |
+-----------+
3 rows in set (0.00 sec)
मुद्रा चिह्न हटाकर योग करना
mysql> SELECT SUM(REPLACE(Price, '€', '')) AS Total_Price FROM DemoTable616;
आउटपुट:
+-------------+
| Total_Price |
+-------------+
| 1000 |
+-------------+
1 row in set (0.00 sec)
कैसे काम करता है:
REPLACE(Price, '€', '')- प्रत्येक मान से '€' हटाता है → '200.00', '300.00', '500.00'- MySQL स्वचालित रूप से स्ट्रिंग को संख्या में बदल देता है (संख्यात्मक संदर्भ में)
SUM()- संख्यात्मक मानों का योग करता है
एकाधिक मुद्रा चिह्न संभालना
SELECT SUM(
REPLACE(
REPLACE(
REPLACE(Price, '€', ''),
'$', ''),
'₹', '')
) AS Total_Price FROM DemoTable616;
REGEXP_REPLACE के साथ (MySQL 8.0+)
SELECT SUM(CAST(REGEXP_REPLACE(Price, '[^0-9.]', '') AS DECIMAL(10,2)))
FROM DemoTable616;
यह सभी गैर-संख्यात्मक वर्ण (मुद्रा चिह्न, कॉमा, स्पेस) हटा देता है।
परिणाम में मुद्रा चिह्न जोड़ना
SELECT CONCAT('€', FORMAT(SUM(REPLACE(Price, '€', '')), 2)) AS Total_Price
FROM DemoTable616;
आउटपुट: €1,000.00
बेहतर डिज़ाइन: संख्यात्मक कॉलम + अलग मुद्रा कॉलम
CREATE TABLE prices (
amount DECIMAL(10,2) NOT NULL,
currency CHAR(3) NOT NULL DEFAULT 'EUR', -- ISO 4217 कोड
CHECK (currency IN ('EUR', 'USD', 'INR', 'GBP'))
);
लाभ: गणना सीधी, इंडेक्स उपयोग योग्य, मुद्रा रूपांतरण आसान, डेटा अखंडता।
CAST के साथ स्पष्ट रूपांतरण
SELECT SUM(CAST(REPLACE(Price, '€', '') AS DECIMAL(10,2))) AS Total_Price
FROM DemoTable616;
यह टाइप सुरक्षा सुनिश्चित करता है और अप्रत्यक्ष रूपांतरण चेतावनियों से बचाता है।