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

MySQL में CAST और REPLACE का उपयोग करके अंडरस्कोर से अलग बड़ी स्ट्रिंग से संख्या निकालें

MySQL में REPLACE और CAST का उपयोग करके स्ट्रिंग से संख्या निकालना

जब एक स्ट्रिंग में एक ज्ञात पैटर्न में संख्या एम्बेडेड होती है, तो आप अवांछित भागों को हटाने के लिए REPLACE() का उपयोग कर सकते हैं और फिर CAST() का उपयोग करके परिणाम को संख्या में बदल सकते हैं।

टेबल बनाना

mysql> CREATE TABLE DemoTable1961 (
    -> Title TEXT
    -> );
Query OK, 0 rows affected (0.00 sec)

जटिल स्ट्रिंग के साथ डेटा डालना

mysql> INSERT INTO DemoTable1961 VALUES (
    -> 'You_can_remove_the_string_part_only-10001-But_You_can_not_remove_the_numeric_parts'
    -> );
Query OK, 1 row affected (0.00 sec)

मूल डेटा

mysql> SELECT * FROM DemoTable1961;
+------------------------------------------------------------------------------------+
| Title                                                                              |
+------------------------------------------------------------------------------------+
| You_can_remove_the_string_part_only-10001-But_You_can_not_remove_the_numeric_parts |
+------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

संख्या निकालने का क्वेरी

mysql> SELECT CAST(
    -> REPLACE(
    ->   REPLACE(
    ->     'You_can_remove_the_string_part_only-10001-But_You_can_not_remove_the_numeric_parts',
    ->     'You_can_remove_the_string_part_only-', ''
    ->   ),
    ->   '-But_You_can_not_remove_the_numeric_parts', ''
    -> ) AS UNSIGNED
    -> ) AS Output
    -> FROM DemoTable1961;

परिणाम

+--------+
| Output |
+--------+
|  10001 |
+--------+
1 row in set (0.00 sec)

चरण-दर-चरण विश्लेषण

  1. आंतरिक REPLACE: प्रीफिक्स हटाता है 'You_can_remove_the_string_part_only-' → '10001-But_You_can_not_remove_the_numeric_parts'
  2. बाहरी REPLACE: सफ़िक्स हटाता है '-But_You_can_not_remove_the_numeric_parts' → '10001'
  3. CAST(... AS UNSIGNED): स्ट्रिंग को अनसाइन्ड इंटीजर में बदलता है

सामान्य पैटर्न: ज्ञात प्रीफिक्स/सफ़िक्स हटाना

CAST(
    REPLACE(
        REPLACE(full_string, 'known_prefix_', ''),
        '_known_suffix', ''
    ) AS UNSIGNED
)

अधिक मजबूत दृष्टिकोण: REGEXP (MySQL 8.0+)

-- केवल अंक निकालें
SELECT CAST(REGEXP_SUBSTR(Title, '[0-9]+') AS UNSIGNED) AS Number
FROM DemoTable1961;

-- या REGEXP_REPLACE के साथ (MySQL 8.0.17+)
SELECT CAST(REGEXP_REPLACE(Title, '[^0-9]', '') AS UNSIGNED) AS Number
FROM DemoTable1961;

पुराने MySQL संस्करणों के लिए: उपयोगकर्ता-परिभाषित फ़ंक्शन

CREATE FUNCTION ExtractNumber(input VARCHAR(255)) 
RETURNS INT DETERMINISTIC
BEGIN
    DECLARE output VARCHAR(255) DEFAULT '';
    DECLARE i INT DEFAULT 1;
    DECLARE c CHAR(1);
    WHILE i <= LENGTH(input) DO
        SET c = SUBSTRING(input, i, 1);
        IF c BETWEEN '0' AND '9' THEN
            SET output = CONCAT(output, c);
        END IF;
        SET i = i + 1;
    END WHILE;
    RETURN CAST(output AS UNSIGNED);
END;

CAST लक्ष्य प्रकार

प्रकारविवरणरेंज
SIGNEDहस्ताक्षरित पूर्णांक-2147483648 से 2147483647
UNSIGNEDअहस्ताक्षरित पूर्णांक0 से 4294967295
DECIMAL(m,d)स्थिर-बिंदु संख्यापरिशुद्धता/स्केल
CHAR(N)निश्चित-लंबाई स्ट्रिंगN वर्ण

संबंधित स्ट्रिंग फ़ंक्शन

  • SUBSTRING_INDEX(): विभाजक द्वारा विभाजन (पिछला लेख देखें)
  • SUBSTRING(): स्थिति/लंबाई द्वारा निष्कर्षण
  • LOCATE()/INSTR(): उपस्ट्रिंग स्थिति खोजें
  • TRIM(): अग्रणी/अनुगामी वर्ण हटाएं

चेतावनी

यह दृष्टिकोण स्थिर/ज्ञात पैटर्न के लिए काम करता है। परिवर्तनीय पैटर्न के लिए, REGEXP या एप्लिकेशन-स्तरीय पार्सिंग का उपयोग करें।

  1. - Javascript में स्ट्रिंग से संख्या मान कैसे प्राप्त करें?

    स्ट्रिंग abcde 30 में पूर्णांक प्राप्त करने के लिए, JavaScript में निम्न रेगेक्स का उपयोग करें, अन्यथा यह NaN लौटाएगा। इसके साथ, स्ट्रिंग match() मेथड के तहत रेगेक्स के साथ संख्या प्राप्त करने के लिए parseInt() का उपयोग करें। उदाहरण लाइव डेमो <!DOCTYPE html> <html>    <body

  1. - जावास्क्रिप्ट में स्ट्रिंग में स्वरों की संख्या कैसे प्राप्त करें?

    स्ट्रिंग में स्वरों की संख्या की गणना अंग्रेजी भाषा में स्वर a, e, i, o और u हैं। सुनिश्चित करें कि किसी भी स्ट्रिंग में ये स्वर दोनों केस में हो सकते हैं (या तो छोटे या बड़े)। विवरण निम्नलिखित उदाहरण में, noOfVowels() नामक यूजर-डिफाइंड फंक्शन का उपयोग करके, एक इनपुट स्ट्रिंग पढ़ी जाती है और उसकी त

  1. जावास्क्रिप्ट ऐरे से स्ट्रिंग कैसे पार्स करें? जावास्क्रिप्ट ऐरे से स्ट्रिंग कैसे पार्स करें?

    जावास्क्रिप्ट ऐरे से स्ट्रिंग पार्स करने का कोड निम्नलिखित है - उदाहरण <!DOCTYPE html> <html lang=en> <head> <meta charset=UTF-8 /> <meta name=viewport content=width=device-width, initial-scale=1.0 /> <title>Document</title> <style>    body