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

MySQL - पहले 3 अल्पविराम से अलग किए गए मान प्राप्त करें

आप SUBSTRING_INDEX का उपयोग कर सकते हैं दो बार, दूसरा -1 पैरामीटर वाला:

SELECT
  'aaaaa, bbbbb, ccccc',
  SUBSTRING_INDEX('aaaaa, bbbbb, ccccc', ',', 1) AS column_one,
  SUBSTRING_INDEX(SUBSTRING_INDEX('aaaaa, bbbbb, ccccc', ',', 2), ',', -1) AS column_two,
  SUBSTRING_INDEX(SUBSTRING_INDEX('aaaaa, bbbbb, ccccc', ',', 3), ',', -1) AS column_three

यदि पैरामीटर नकारात्मक है, तो अंतिम सीमांकक (दाईं ओर से गिनती) के दाईं ओर सब कुछ वापस कर दिया जाता है। उदा.

  • SUBSTRING_INDEX('aaaaa, bbbbb, ccccc', ',', 2) वापस आ जाएगा aaaaa, bbbbb
  • SUBSTRING_INDEX( आआआ, बीबीबीबीबी, ',', -1) फिर bbbbb लौटाएगा

आप ',' को एक सीमांकक, या ट्रिम परिणाम।

कृपया फिडल देखें यहां

संपादित करें

यदि आप उन स्ट्रिंग्स पर विचार करना चाहते हैं जिनमें तीन से कम मान हो सकते हैं, तो आप कुछ इस तरह का उपयोग कर सकते हैं:

SELECT
  s,
  SUBSTRING_INDEX(s, ',', 1) AS column_one,
  CASE WHEN LENGTH(s)-LENGTH(Replace(s, ',', ''))>0
       THEN SUBSTRING_INDEX(SUBSTRING_INDEX(s, ',', 2), ',', -1)
       ELSE NULL END AS column_two,
  CASE WHEN LENGTH(s)-LENGTH(Replace(s, ',', ''))>1
       THEN SUBSTRING_INDEX(SUBSTRING_INDEX(s, ',', 3), ',', -1)
       ELSE NULL END AS column_three
FROM
  strings

कृपया फिडल देखें यहां




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. अपरिभाषित अनुक्रमणिका:REMOTE_ADDR जबकि Laravel माइग्रेट

  2. प्रथम और अंतिम नाम से अद्वितीय उपयोगकर्ता नाम उत्पन्न करें?

  3. एसक्यूएल - जांचें कि क्या कोई कॉलम ऑटो इंक्रीमेंट करता है

  4. mysql में जॉइन पर डुप्लीकेट कॉलम नाम

  5. MySQL में एकाधिक कॉलम कैसे अपडेट करें