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

MySQL तालिका रिकॉर्ड में किसी वर्ण की केवल पहली घटना के लिए खोज/प्रतिस्थापन करें?

<घंटा/>

आप इसे REPLACE () फ़ंक्शन के साथ CONCAT () की सहायता से प्राप्त कर सकते हैं। पहली बार होने वाली घटनाओं को खोजने के लिए आपको INSTR () फ़ंक्शन का उपयोग करना होगा।

वाक्य रचना इस प्रकार है -

अपना टेबलनामसेट यूजरपोस्ट अपडेट करें =CONCAT(REPLACE(LEFT(yourColumnName, INSTR(yourColumnName, 'k')), 'k', 'i'), SubSTRING(yourColumnName, INSTR(yourColumnName, 'k') + 1));

उपरोक्त वाक्य रचना को समझने के लिए, आइए एक तालिका बनाते हैं। तालिका बनाने की क्वेरी इस प्रकार है -

mysql> टेबल बनाएं UserInformation -> ( -> UserId int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> UserName varchar(10), -> UserPost text -> );क्वेरी ओके, 0 पंक्तियाँ प्रभावित (2.05 सेकंड)

अब आप इंसर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डाल सकते हैं। क्वेरी इस प्रकार है -

mysql> UserInformation (UserName, UserPost) मानों ('Larry', 'Thks is a MySQL query') में डालें; क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.16 सेकंड) mysql> UserInformation (UserName, UserPost) मानों में डालें ( 'माइक', 'थक्स एक जावा प्रोग्राम नहीं है'); क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.31 सेकंड) mysql> उपयोगकर्ता सूचना (उपयोगकर्ता नाम, उपयोगकर्ता पोस्ट) मानों में डालें ('सैम', 'थक्स एक एसक्यूएल सिंटैक्स है'); क्वेरी ठीक है, 1 पंक्ति प्रभावित हुई (0.18 सेकंड)

चयन कथन का उपयोग करके तालिका से सभी रिकॉर्ड प्रदर्शित करें। क्वेरी इस प्रकार है -

mysql> UserInformation से *चुनें;

निम्न आउटपुट है -

<पूर्व>+----------+----------+-------------------------- --+| उपयोगकर्ता आईडी | उपयोगकर्ता नाम | यूजर पोस्ट |+-----------+----------+-------------------------- -+| 1 | लैरी | धन्यवाद एक MySQL क्वेरी है || 2 | माइक | धन्यवाद कोई जावा प्रोग्राम नहीं है || 3 | सैम | Thks एक SQL सिंटैक्स है |+-----------+----------+-------------------------- -----+3 पंक्तियाँ सेट में (0.00 सेकंड)

यहां खोज/प्रतिस्थापन के लिए क्वेरी दी गई है, लेकिन किसी रिकॉर्ड में केवल पहली बार कोई मान प्रकट होता है। यहां, 'k' की पहली घटना को 'i' से बदल दिया जाता है -

mysql> UserInformation को अपडेट करें -> UserPost=CONCAT(REPLACE(LEFT(UserPost, INSTR(UserPost, 'k')), 'k', 'i'), -> SUBSTRING(UserPost, INSTR(UserPost, ' k') + 1));क्वेरी ठीक है, 3 पंक्तियाँ प्रभावित (0.16 सेकंड)पंक्तियाँ मिलान:3 परिवर्तित:3 चेतावनियाँ:0

तालिका से सभी रिकॉर्ड एक बार फिर प्रदर्शित करें। क्वेरी इस प्रकार है -

mysql> UserInformation से *चुनें;

निम्नलिखित आउटपुट है जो 'के' की पहली घटना को 'आई' से बदल देता है -

<पूर्व>+----------+----------+-------------------------- --+| उपयोगकर्ता आईडी | उपयोगकर्ता नाम | यूजर पोस्ट |+-----------+----------+-------------------------- -+| 1 | लैरी | यह एक MySQL क्वेरी है || 2 | माइक | यह जावा प्रोग्राम नहीं है || 3 | सैम | यह एक SQL सिंटैक्स है |+-----------+----------+-------------------------- -----+3 पंक्तियाँ सेट में (0.00 सेकंड)
  1. उन मानों के लिए डेटाबेस को क्वेरी करें जो MySQL तालिका में नहीं हैं?

    इसके लिए, आप UNION ALL के साथ WHERE NOT EXISTS का उपयोग कर सकते हैं और तालिका में पहले से मौजूद मानों को अनदेखा करने के लिए NOT IN लागू कर सकते हैं। तालिका में पहले से मौजूद मानों को जोड़ने के लिए UNION ALL के साथ SELECT का उपयोग करें। आइए पहले एक टेबल बनाएं - टेबल बनाएं DemoTable1918 (वैल्यू int

  1. MySQL क्वेरी केवल पहले अक्षर को कैपिटल करने के लिए सभी रिकॉर्ड्स को अपडेट करने के लिए और अन्य सभी को लोअरकेस में सेट करने के लिए

    आइए पहले एक टेबल बनाएं - );क्वेरी ओके, 0 पंक्तियाँ प्रभावित (0.55 सेकंड) इंसर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें - DemoTable2017 मानों में डालें (क्रिस ब्राउन, जावा); क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.11 सेकंड) चयन कथन का उपयोग करके तालिका से सभी रिकॉर्ड प्रदर्शित करें - DemoTabl

  1. MySQL में एक स्ट्रिंग में केवल पहले दोहराए गए मान को कैसे बदलें?

    इसके लिए आप REGEXP_REPLACE() का उपयोग कर सकते हैं। मान लें कि हमारा स्ट्रिंग है - यह मेरी पहली MySQL क्वेरी है। यह पहला ट्यूटोरियल है। मैं पहली बार सीख रहा हूं। हमें किसी विशिष्ट शब्द की केवल पहली घटना को प्रतिस्थापित करने की आवश्यकता है, मान लें कि पहले। आउटपुट होना चाहिए - यह मेरी दूसरी MySQL क्व