मेरा रेगेक्स है (pnr|(P|p) _.:,!"'-/$ _.:,!"'-/$)+[ _.:,!"'-/$]+[ 0-9]{3}[ _.:,!"'-/$]+[0-9]{7}

यह कॉलम से पीएनआर नंबर निकाल रहा है।

नमूना पाठ : 94eb2c0cb17ef354bb052c57f40c\r\nसामग्री-प्रकार: पाठ/सादा; charset=UTF-8\r\nसामग्री-स्थानांतरण-एन्कोडिंग पीएनआर:986-097832

94eb2c0cb17ef354bb052c57f40c\r\nसामग्री-प्रकार: pnr:986-097832 टेक्स्ट/सादा; charset=UTF-8\r\nसामग्री-स्थानांतरण-एन्कोडिंग

Pnr:986-097832 94eb2c0cb17ef354bb052c57f40c\r\nसामग्री-प्रकार: टेक्स्ट/सादा; charset=UTF-8\r\nसामग्री-स्थानांतरण-एन्कोडिंग

मुझे एक mysql क्वेरी बनानी है जो केवल pnr नंबर निकालेगी

9
Sunil Harak 28 फरवरी 2017, 08:04

3 जवाब

SELECT REGEXP_SUBSTR(column, 'pnr:[0-9\-]{10}')
FROM table
6
Goodbye StackExchange 23 अक्टूबर 2018, 04:48
स्टैक ओवरफ़्लो में आपका स्वागत है! इस कोड स्निपेट के लिए धन्यवाद, जो कुछ सीमित, तत्काल सहायता प्रदान कर सकता है। एक उचित स्पष्टीकरण क्यों यह एक अच्छा समाधान दिखाकर इसके दीर्घकालिक मूल्य में काफी सुधार करेगा समस्या के लिए, और भविष्य के पाठकों के लिए अन्य, समान प्रश्नों के साथ इसे और अधिक उपयोगी बना देगा। कृपया कुछ स्पष्टीकरण जोड़ने के लिए अपने उत्तर को संपादित करें करें, जिसमें आपके द्वारा की गई धारणाएं भी शामिल हैं।
 – 
Goodbye StackExchange
23 अक्टूबर 2018, 04:49
साफ और सरल।
 – 
Roshan Upreti
24 अक्टूबर 2018, 14:02
10
REGEXP_SUBSTR केवल MySQL>= 8.0 के लिए!
 – 
powtac
12 फरवरी 2019, 15:32

SUBSTRING_INDEX आज़माएं

SELECT 
SUBSTRING_INDEX(
SUBSTRING_INDEX('94eb2c0cb17ef354bb052c57f40c\r\nContent-Type: text/plain; charset=UTF-8\r\nContent-Transfer-Encoding pnr:986-097832', 'pnr:', -1), ' ',1);

SELECT 
SUBSTRING_INDEX(
SUBSTRING_INDEX('94eb2c0cb17ef354bb052c57f40c\r\nContent-Type: pnr:986-097832 text/plain; charset=UTF-8\r\nContent-Transfer-Encoding', 'pnr:', -1), ' ',1);

SELECT 
SUBSTRING_INDEX(
SUBSTRING_INDEX('pnr:986-097832 94eb2c0cb17ef354bb052c57f40c\r\nContent-Type: text/plain; charset=UTF-8\r\nContent-Transfer-Encoding', 'pnr:', -1), ' ',1);

नमूना

mysql> SELECT
    -> SUBSTRING_INDEX(
    -> SUBSTRING_INDEX('94eb2c0cb17ef354bb052c57f40c\r\nContent-Type: pnr:986-097832 text/plain; charset=UTF-8\r\nContent-Transfer-Encoding', 'pnr:', -1), ' ',1);
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| SUBSTRING_INDEX(
SUBSTRING_INDEX('94eb2c0cb17ef354bb052c57f40c\r\nContent-Type: pnr:986-097832 text/plain; charset=UTF-8\r\nContent-Transfer-Encoding', 'pnr:', -1), ' ',1) |
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| 986-097832                                                                                                                                                                  |
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0,00 sec)

mysql>
mysql> SELECT
    -> SUBSTRING_INDEX(
    -> SUBSTRING_INDEX('pnr:986-097832 94eb2c0cb17ef354bb052c57f40c\r\nContent-Type: text/plain; charset=UTF-8\r\nContent-Transfer-Encoding', 'pnr:', -1), ' ',1);
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| SUBSTRING_INDEX(
SUBSTRING_INDEX('pnr:986-097832 94eb2c0cb17ef354bb052c57f40c\r\nContent-Type: text/plain; charset=UTF-8\r\nContent-Transfer-Encoding', 'pnr:', -1), ' ',1) |
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| 986-097832                                                                                                                                                                  |
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0,00 sec)

mysql>
4
Bernd Buffen 28 फरवरी 2017, 08:50
मैं सबस्ट्रिंग_इंडेक्स का उपयोग करने की कोशिश कर रहा हूं लेकिन मुझे इसे रेगेक्स के साथ उपयोग करना है क्योंकि पीएनआर पी: एन: आर या पीएनआर या पीएनआर हो सकता है: 123-3123212
 – 
Sunil Harak
28 फरवरी 2017, 09:00
हरक - आप इस तरह "पीएनआर" को सामान्य करने का प्रयास कर सकते हैं और इसे मेरी क्वेरी में डाल सकते हैं स्थान चुनें (प्रतिस्थापन ('पीएनआर: 986-097832 94eb2c0cb17ef354bb052c57f40c \ r \ n सामग्री-प्रकार: टेक्स्ट/सादा; वर्णसेट = यूटीएफ- 8\r\nContent-Transfer-Encoding' ,'p:n:r','PNR') ,'pnr','PNR'),'pnr','PNR');
 – 
Bernd Buffen
28 फरवरी 2017, 10:25
हरक - या यदि आप मारियाडीबी का उपयोग कर रहे हैं तो आप सीधे REGEXP_SUBSTR का उपयोग कर सकते हैं देखें:mariadb.com/kb/en /mariadb/regexp_substr
 – 
Bernd Buffen
28 फरवरी 2017, 10:27

Oracle के लिए हम नीचे कुछ ऐसा कर सकते हैं -

    SQL> create table test2( id varchar2(2000));

    Table created.

    SQL> insert into test2 values ('pnr:986-097831 94eb2c0cb17ef354bb052c57f40c\r\nC
    ontent-Type: text/plain; charset=UTF-8\r\nContent-Transfer-Encoding');

    1 row created.

    SQL> insert into test2 values('94eb2c0cb17ef354bb052c57f40c\r\nContent-Type: pnr
    :986-097832 text/plain; charset=UTF-8\r\nContent-Transfer-Encoding')
      2  ;

    1 row created.

    SQL> insert into test2 values('94eb2c0cb17ef354bb052c57f40c\r\nContent-Type: tex
    t/plain; charset=UTF-8\r\nContent-Transfer-Encoding pnr:986-097833');

    1 row created.

    SQL> select regexp_substr( id, '(P|p)(N|n)(R|r):[0-9]*\-[0-9]*' ) PNR FROM  test2;

    PNR
----------------

pnr:986-097831
pnr:986-097832
pnr:986-097833

    SQL>

`
-5
TechGuy 28 फरवरी 2017, 08:18
आपकी प्रतिक्रिया के लिए धन्यवाद :), लेकिन मैं इसे mysql . के लिए चाहता हूं
 – 
Sunil Harak
28 फरवरी 2017, 08:32