Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

MySQL में एक स्ट्रिंग के हिस्से को कैसे बदलें

समस्या:

आप एक स्ट्रिंग के हिस्से को MySQL में किसी अन्य स्ट्रिंग से बदलना चाहते हैं।

उदाहरण:

हमारे डेटाबेस में motorbike_sale id . में डेटा के साथ , name , और part_number कॉलम।

<थ>नाम
आईडी भाग_संख्या
1 हार्ले डेविडसन x 1245-AC2-25
2 होंडा CB750-x 012-GK8-A8
3 सुजुकी हायाबुसा एक्स 798-25-28

हम सभी हाइफ़न वर्णों को फ़ॉरवर्ड स्लैश से बदलकर मोटरबाइक के पार्ट नंबर बदलना चाहते हैं।

समाधान 1:

SELECT name,
  REPLACE( part_number, '-', '/' ) as new_part_number
FROM motorbike_sale;

यह क्वेरी मोटरबाइक के नामों और नए पार्ट नंबरों की सूची लौटाती है। उन फ़ॉरवर्ड स्लैश पर ध्यान दें जिन्होंने भाग संख्याओं में हाइफ़न को बदल दिया है:

नाम नया_ part_number
हार्ले डेविडसन x 1245/AC2/25
होंडा CB750-x 012/GK8/A8
सुजुकी हायाबुसा एक्स 798/25/28

चर्चा:

एक सबस्ट्रिंग (यानी शब्द, एक चरित्र, आदि) को दूसरे सबस्ट्रिंग के साथ बदलने के लिए MySQL REPLACE () फ़ंक्शन का उपयोग करें और बदली हुई स्ट्रिंग को वापस करें। यह फ़ंक्शन तीन तर्क लेता है:

  • स्ट्रिंग बदलने के लिए। (हमारे उदाहरण में, यह कॉलम है part_number ।)
  • प्रतिस्थापित करने के लिए विकल्प (अर्थात वर्ण '-')।
  • सम्मिलित करने के लिए विकल्प (अर्थात वर्ण '/')।

ध्यान दें कि यह फ़ंक्शन सभी . को प्रतिस्थापित करता है दिए गए स्ट्रिंग या कॉलम में सबस्ट्रिंग की घटनाएँ। हमारे उदाहरण में, प्रत्येक part_number इसमें तीन हाइफ़न वर्ण होते हैं, जिनमें से प्रत्येक को एक स्लैश से बदल दिया गया था।

अगले उदाहरण में, हम मोटरबाइक नामों में 'x' के सभी उदाहरणों को '10' से बदल देंगे।

समाधान 2:

SELECT id,
  REPLACE( name, 'x', '10' ) as new_name,
  part_number
FROM motorbike_sale
WHERE id>1;

यह क्वेरी id . वाली पंक्तियों के रिकॉर्ड को फ़िल्टर करने के लिए WHERE क्लॉज़ का उपयोग करती है 2 या अधिक का मान।

ध्यान दें कि होंडा मोटरबाइक का नाम 'x' से बदलकर '10' कर दिया गया था, लेकिन सुजुकी मोटरबाइक का नाम नहीं बदला गया था। क्यों नहीं? क्योंकि REPLACE() केस-संवेदी है। इसलिए, 'x' 'X' के समान नहीं है। इस उदाहरण में, 'x' को '10' से बदल दिया गया था, लेकिन 'X' अपरिवर्तित था।

यह क्वेरी होंडा मोटरबाइक का नया नाम और सुजुकी मोटरबाइक का पुराना नाम प्रदर्शित करती है।

<थ>नया_नाम
आईडी भाग_संख्या
होंडा CB750-10 012-GK8-A8
सुजुकी हायाबुसा एक्स 798-25-28

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL कनेक्शन काम नहीं कर रहा:2002 ऐसी कोई फ़ाइल या निर्देशिका नहीं

  2. घातक त्रुटि:बूलियन पर किसी सदस्य फ़ंक्शन bind_param () पर कॉल करें

  3. MySQL त्रुटि 1436:थ्रेड स्टैक ओवररन, साधारण क्वेरी के साथ

  4. मैं PHP में पासवर्ड हैश को कैसे डिक्रिप्ट कर सकता हूं?

  5. त्रुटि 1130 (HY000) को कैसे ठीक करें:होस्ट को इस MySQL सर्वर से कनेक्ट करने की अनुमति नहीं है