Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL में REPLACE() से प्रतिशत चिह्न (%) हटाना

REPLACE() फंक्शन से % हटाना

स्ट्रिंग कॉलम से प्रतिशत चिह्न (%) हटाने के लिए REPLACE(str, '%', '') का उपयोग करें। यह सभी घटनाओं को खाली स्ट्रिंग से बदल देता है।

उदाहरण: टेबल बनाना और डेटा इन्सर्ट करना

mysql> CREATE TABLE DemoTable828(
    CustomerName VARCHAR(100),
    InterestRate VARCHAR(100)
);
Query OK, 0 rows affected (0.50 sec)

रिकॉर्ड्स इन्सर्ट करना (% के साथ)

mysql> INSERT INTO DemoTable828 VALUES
    ('Chris','10%'),('Robert','11.5%'),('David','15.90%'),('Bob','20%');
Query OK, 4 rows affected (...)

सभी रिकॉर्ड्स देखना

mysql> SELECT * FROM DemoTable828;
+--------------+--------------+
| CustomerName | InterestRate |
+--------------+--------------+
| Chris        | 10%          |
| Robert       | 11.5%        |
| David        | 15.90%       |
| Bob          | 20%          |
+--------------+--------------+
4 rows in set (0.00 sec)

प्रतिशत चिह्न हटाने की क्वेरी (UPDATE)

mysql> UPDATE DemoTable828 SET InterestRate = REPLACE(InterestRate, '%', '');
Query OK, 4 rows affected (0.18 sec)
Rows matched: 4  Changed: 4  Warnings: 0

अपडेट के बाद डेटा देखना

mysql> SELECT * FROM DemoTable828;
+--------------+--------------+
| CustomerName | InterestRate |
+--------------+--------------+
| Chris        | 10           |
| Robert       | 11.5         |
| David        | 15.90        |
| Bob          | 20           |
+--------------+--------------+
4 rows in set (0.00 sec)

SELECT में हटाना (डेटा बदले बिना)

SELECT CustomerName, REPLACE(InterestRate, '%', '') AS CleanRate FROM DemoTable828;

संख्यात्मक प्रकार में बदलना (गणना के लिए)

SELECT CustomerName, CAST(REPLACE(InterestRate, '%', '') AS DECIMAL(5,2)) AS RateValue
FROM DemoTable828;

परिणाम

+--------------+-----------+
| CustomerName | RateValue |
+--------------+-----------+
| Chris        | 10.00     |
| Robert       | 11.50     |
| David        | 15.90     |
| Bob          | 20.00     |
+--------------+-----------+

अन्य अवांछित वर्ण हटाना

वर्णREPLACE कॉल
कॉमा (,)REPLACE(col, ',', '')
डॉलर ($)REPLACE(col, '$', '')
स्पेसREPLACE(col, ' ', '')
कई वर्णREPLACE(REPLACE(REPLACE(col, '$', ''), ',', ''), '%', '')

REGEXP_REPLACE (MySQL 8.0+) - अधिक शक्तिशाली

-- सभी गैर-संख्यात्मक वर्ण हटाएं (दशमलव बिंदु रखें)
SELECT REGEXP_REPLACE(InterestRate, '[^0-9.]', '') FROM DemoTable828;

-- केवल अंतिम % हटाएं
SELECT REGEXP_REPLACE(InterestRate, '%$', '') FROM DemoTable828;

TRIM() से तुलना

  • TRIM() - केवल शुरुआत/अंत से वर्ण हटाता है
  • REPLACE() - सभी घटनाएं हटाता है
  • TRIM(TRAILING '%' FROM InterestRate) - केवल अंतिम % हटाता है

स्थायी सफाई: कॉलम प्रकार बदलें

-- 1. साफ करें
UPDATE DemoTable828 SET InterestRate = REPLACE(InterestRate, '%', '');

-- 2. DECIMAL में बदलें
ALTER TABLE DemoTable828 MODIFY InterestRate DECIMAL(5,2);

नोट

प्रतिशत मानों को संख्यात्मक कॉलम (DECIMAL) में स्टोर करना बेहतर है, फॉर्मेटिंग एप्लिकेशन लेयर पर करें।

  1. - MySQL में ALTER TABLE DROP INDEX का उपयोग करके टेबल से इंडेक्स हटाना

    MySQL में इंडेक्स हटाना: ALTER TABLE DROP INDEX MySQL टेबल से मौजूदा इंडेक्स हटाने के लिए, इंडेक्स नाम के साथ ALTER TABLE ... DROP INDEX स्टेटमेंट का उपयोग करें। उदाहरण: इंडेक्स बनाना और हटाना DESC DemoTable1469; +-------------+-------------+------+-----+---------+----------------+ | Field |

  1. - MySQL में एक टेबल से डेटा चुनना जहाँ कॉलम मान दूसरी टेबल से मेल खाएँ

    EXISTS सबक्वेरी से क्रॉस-टेबल मिलान EXISTS सबक्वेरी का उपयोग करके एक टेबल की पंक्तियाँ चुनें जहाँ कॉलम मान दूसरी टेबल के कॉलम मान से मेल खाता हो। पहली टेबल (विषय) (111, MySQL), (112, MongoDB), (113, Java), (114, C), (115, MySQL); दूसरी टेबल (छात्र) (Chris, MySQL), (Bob, MySQL), (Sam, MySQL), (C

  1. - MySQL में ENUM कॉलम से केवल 'NO' मानों की गणना करें

    MySQL में ENUM कॉलम पर सशर्त गणना के लिए बूलियन अभिव्यक्ति का योग (SUM(condition)) उपयोग कर सकते हैं। MySQL में TRUE = 1 और FALSE = 0 होता है। टेबल बनाएं mysql> CREATE TABLE DemoTable1829 ( Name VARCHAR(20), isTopper ENUM(YES,NO) ); डेटा डालें mysql> INSERT INTO DemoTable1829 VALUES(