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 में एकाधिक कॉलम कैसे अपडेट करें