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

MySQL में एक स्ट्रिंग को कैसे विभाजित करें

समस्या:

आप MySQL में एक स्ट्रिंग को विभाजित करना चाहते हैं।

उदाहरण:

हमारे डेटाबेस में Student कॉलम में डेटा के साथ id और name

<थ>नाम
आईडी
1 एन स्मिथ
2 मार्क ट्वेन
3 ब्रैड ग्रीन

आइए कॉलम नाम से डेटा प्राप्त करें और इसे firstname . में विभाजित करें और lastname

समाधान:

हम SUBSTRING_INDEX() . का उपयोग करेंगे समारोह। ये रही क्वेरी:

SELECT
SUBSTRING_INDEX(name,' ',1) AS firstname,
SUBSTRING_INDEX(name,' ',-1) AS lastname
FROM Student

ये रहा क्वेरी का नतीजा:

<थ>पहला नाम <थ>अंतिम नाम
एन स्मिथ
चिह्नित करें ट्वेन
ब्रैड हरा

चर्चा:

फ़ंक्शन SUBSTRING_INDEX() 3 तर्क लेता है:स्रोत स्ट्रिंग, सीमांकक, और सीमांकक की घटना गणना।

स्रोत स्ट्रिंग वह स्ट्रिंग है जिसे हम विभाजित करना चाहते हैं।

सीमांकक वर्णों की एक स्ट्रिंग है जो SUBSTRING_INDEX() फ़ंक्शन स्रोत स्ट्रिंग में ढूंढता है। जब पाया जाता है, तो यह उस स्थान को इंगित करता है जहां सबस्ट्रिंग समाप्त होती है। सीमांकक एक एकल वर्ण हो सकता है जैसे कि एक स्थान, लेकिन यह एक पैटर्न भी हो सकता है जिसमें दो या अधिक वर्ण होते हैं। यह पैटर्न केस संवेदी है; अर्थात्, यह मायने रखता है कि दिए गए वर्ण अपर केस हैं या लोअर केस। याद रखें कि सीमांकक एक स्ट्रिंग है, इसलिए इसे उद्धरणों ('') में लिखा जाना चाहिए।

अंतिम तर्क घटना गणना . है . यह इंगित करता है कि सीमांकक पैटर्न को कितनी बार मिलान करने की आवश्यकता है। ध्यान दें कि घटना संख्या एक नकारात्मक मान हो सकती है। जब यह ऋणात्मक होता है, तो हम सीमांकक की घटनाओं को दाईं ओर से गिनते हैं। जब गिनती एक धनात्मक संख्या होती है, तो हम बाईं ओर से गिनते हैं।

फ़ंक्शन स्रोत स्ट्रिंग के प्रत्येक वर्ण को तब तक आउटपुट करता है जब तक कि सीमांकक घटना संख्या द्वारा दिए गए समय की संख्या से मेल नहीं खाता।

अगर हम निम्नलिखित क्वेरी चलाते हैं:

SELECT
SUBSTRING_INDEX('Ann Smith',' ',1);

आउटपुट होगा:

Ann

जैसा कि आप देख सकते हैं, फ़ंक्शन ने सभी वर्णों को तब तक लौटा दिया जब तक कि बाईं ओर से पहला स्थान नहीं मिल गया।

हमारे उदाहरण में, हम छात्र के पहले नाम के रूप में बाईं ओर से पहले स्थान तक के सभी वर्णों को पुनः प्राप्त करते हैं और छात्र के अंतिम नाम के रूप में दाईं ओर से पहले स्थान तक सभी वर्णों को पुनः प्राप्त करते हैं।


  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 केवल सबसे हाल की पंक्ति में शामिल हों?

  2. यह पता लगाने के 3 तरीके कि क्या कोई स्ट्रिंग MySQL में रेगुलर एक्सप्रेशन से मेल खाती है

  3. फ्रेशर + अनुभवी के लिए सामान्य MySql साक्षात्कार प्रश्न और उत्तर

  4. MySQL में MyISAM के साथ कार्य करना

  5. लेफ्ट जॉइन सभी पंक्तियों को वापस नहीं कर रहा है