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

MySQL में अलग-अलग स्पेस आवंटन वाले समान नामों को अलग कॉलम से कैसे प्राप्त करें?

MySQL में LTRIM() और RTRIM() का उपयोग करके स्पेस-असंवेदनशील नाम मिलान

जब दो कॉलम में समान नाम हों लेकिन अलग-अलग अग्रणी/अनुगामी स्पेस हों (जैसे " John " और "John"), तो LTRIM() और RTRIM() या TRIM() का उपयोग करके उन्हें सामान्यीकृत करके मिलान करें।

उदाहरण के साथ पूर्ण कार्यान्वयन

टेबल बनाना

mysql> CREATE TABLE DemoTable614 (
    EnterName VARCHAR(100),
    ReenterName VARCHAR(100)
);

रिकॉर्ड डालना (विभिन्न स्पेस के साथ)

mysql> INSERT INTO DemoTable614 VALUES(' John ', 'John'), ('Carol ', 'Bob'), ('David ', 'David');

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

mysql> SELECT * FROM DemoTable614;

आउटपुट:

+------------+--------------+
| EnterName  | ReenterName  |
+------------+--------------+
| John       | John         |
| Carol      | Bob          |
| David      | David        |
+------------+--------------+
3 rows in set (0.00 sec)

नोट: SQL क्लाइंट में स्पेस दृश्यमान नहीं हो सकते, लेकिन वे मौजूद हैं।

स्पेस-असंवेदनशील मिलान के लिए क्वेरी

mysql> SELECT * FROM DemoTable614
WHERE LTRIM(RTRIM(EnterName)) = LTRIM(RTRIM(ReenterName));

आउटपुट:

+------------+--------------+
| EnterName  | ReenterName  |
+------------+--------------+
| John       | John         |
| David      | David        |
+------------+--------------+
2 rows in set (0.00 sec)

फ़ंक्शन व्याख्या:

  • LTRIM(str) - अग्रणी (बाएं) स्पेस हटाता है
  • RTRIM(str) - अनुगामी (दाएं) स्पेस हटाता है
  • TRIM(str) - दोनों तरफ के स्पेस हटाता है (संक्षिप्त रूप)

सरल विकल्प: TRIM()

SELECT * FROM DemoTable614
WHERE TRIM(EnterName) = TRIM(ReenterName);

यह समान परिणाम देता है लेकिन अधिक पठनीय है।

केस-इनसेंसिटिव तुलना के लिए

WHERE LOWER(TRIM(EnterName)) = LOWER(TRIM(ReenterName))

व्यावहारिक उपयोग के मामले

  • उपयोगकर्ता इनपुट सत्यापन (दोबारा दर्ज किया गया नाम/ईमेल)
  • डेटा डिडुप्लीकेशन और सफाई
  • फजी मैचिंग और रिकॉर्ड लिंकेज
  • आयातित डेटा में विसंगतियों को संभालना

प्रदर्शन नोट: बड़े टेबल पर फ़ंक्शन-आधारित WHERE क्लॉज इंडेक्स उपयोग को रोक सकते हैं। इसके लिए जनरेटेड कॉलम या फंक्शनल इंडेक्स (MySQL 8.0+) पर विचार करें।

  1. - MySQL में SUBSTRING_INDEX का उपयोग करके हाइफ़न से अलग स्ट्रिंग को कई कॉलम्स में विभाजित करें

    MySQL में SUBSTRING_INDEX का उपयोग करके विभाजक द्वारा स्ट्रिंग पार्सिंग MySQL का SUBSTRING_INDEX() फ़ंक्शन एक स्ट्रिंग को विभाजक द्वारा विभाजित करने और विशिष्ट भाग निकालने के लिए अत्यंत उपयोगी है। यह CSV-शैली डेटा या संयुक्त फ़ील्ड्स को पार्स करने के लिए आदर्श है। टेबल बनाना ); Query OK, 0 rows af

  1. - MySQL में DISTINCT से डुप्लिकेट पंक्तियों में से एक पंक्ति दिखाएं

    DISTINCT कीवर्ड से अद्वितीय पंक्तियां प्राप्त करें पूरी पंक्ति के डुप्लिकेट को हटाकर केवल अद्वितीय पंक्तियां प्राप्त करने के लिए SELECT DISTINCT * का उपयोग करें। टेबल बनाएं और डेटा डालें: mysql> create table DemoTable1998 ( Name varchar(20) ); Query OK, 0 rows affected (0.61 sec) mysql> insert

  1. - MySQL में विभिन्न पंक्तियों से सूची को एक फ़ील्ड में कैसे लौटाएं

    समाधान GROUP_CONCAT() फंक्शन का उपयोग करके GROUP BY के साथ मानों को जोड़ें। उदाहरण टेबल बनाएं: ); डेटा डालें: INSERT INTO DemoTable2024 VALUES (MongoDB, Mike); क्वेरी FROM DemoTable2024 GROUP BY SubjectName; परिणाम +-------------+---------------------------+ | SubjectName | group_concat(Stude