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

MySQL में REPLACE/SUBSTRING_INDEX से सूची में मान खोजें और बदलें

MySQL में कॉमा-सूची वाले कॉलम में विशिष्ट मान को खोजकर बदलने के लिए SUBSTRING_INDEX() और CONCAT() का संयोजन उपयोग करें।

उदाहरण: 'John' को 'Adam' से बदलें

1. टेबल बनाएं

mysql> CREATE TABLE DemoTable (
    -> ListOfName TEXT
    -> );

2. डेटा डालें

mysql> INSERT INTO DemoTable VALUES(
    -> 'Carol,Sam,John,David,Bob,Mike,Robert,John,Chris,James,Jace');

3. पहला 'John' बदलें

mysql> UPDATE DemoTable
    -> SET ListOfName = CONCAT(
    ->     SUBSTRING_INDEX(ListOfName, 'John', 2),
    ->     'Adam',
    ->     SUBSTRING_INDEX(ListOfName, 'John', -1)
    -> );

4. परिणाम

mysql> SELECT * FROM DemoTable;
+------------------------------------------------------------+
| ListOfName                                                 |
+------------------------------------------------------------+
| Carol,Sam,John,David,Bob,Mike,Robert,Adam,Chris,James,Jace |
+------------------------------------------------------------+

कैसे काम करता है

  • SUBSTRING_INDEX(str, delim, 2) - दूसरे 'John' से पहले का भाग
  • 'Adam' - नया मान
  • SUBSTRING_INDEX(str, delim, -1) - पहले 'John' के बाद का भाग
  • प्रभावी रूप से दूसरे 'John' को बदलता है

पहला मिलान बदलने के लिए

UPDATE DemoTable
SET ListOfName = CONCAT(
    SUBSTRING_INDEX(ListOfName, 'John', 1),
    'Adam',
    SUBSTRING_INDEX(ListOfName, 'John', -1)
);

सभी मिलान बदलने के लिए (MySQL 8.0+)

UPDATE DemoTable
SET ListOfName = REPLACE(ListOfName, 'John', 'Adam');

चेतावनी

यह स्ट्रिंग मैनिपुलेशन है। आंशिक मिलान (जैसे 'Johnson') भी प्रभावित हो सकते हैं। बेहतर डिज़ाइन के लिए सामान्यीकृत टेबल (एक पंक्ति प्रति मान) उपयोग करें।

  1. - MySQL में AND ऑपरेटर का उपयोग करके विशिष्ट रिकॉर्ड कैसे हटाएं?

    MySQL में DELETE स्टेटमेंट के WHERE क्लॉज में AND ऑपरेटर का उपयोग करके एकाधिक शर्तों के आधार पर विशिष्ट पंक्तियों को हटाया जा सकता है। सिंटैक्स DELETE FROM table_name WHERE condition1 AND condition2 AND ...; उदाहरण तालिका बनाएं और डेटा डालें: mysql> CREATE TABLE DemoTable (Id INT, Name VARCHAR(

  1. - MySQL में डोमेन रिकॉर्ड और खोज मात्रा से लोकप्रिय डोमेन कैसे खोजें?

    MySQL में GROUP BY और ORDER BY SUM() DESC का उपयोग करके डोमेन के अनुसार खोज मात्रा एकत्र करके लोकप्रिय डोमेन खोजे जा सकते हैं। उदाहरण तालिका बनाएं: mysql> CREATE TABLE DemoTable ( -> URL VARCHAR(40), DomainName VARCHAR(20), SearchTimes INT -> ); डेटा डालें: mysql> INSERT INTO D

  1. - MySQL में URL रिकॉर्ड के भाग को ढूंढें और बदलें

    समाधान REPLACE() फंक्शन का उपयोग करके स्ट्रिंग के भाग को बदलें। उदाहरण टेबल बनाएं: INSERT INTO DemoTable2025 VALUES (http=//www.gmail.com); अपडेट क्वेरी UPDATE DemoTable2025 SET URL = REPLACE(URL, http=, https:); परिणाम +--------------------------+ | URL | +----------------