Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> MySql

MySQL में regexp का उपयोग करके केवल अंक प्राप्त करें?


यदि आप REGEXP का उपयोग करके केवल अंक प्राप्त करना चाहते हैं, तो निम्नलिखित रेगुलर एक्सप्रेशन का उपयोग करें ( ^[0-9]*$) जहां क्लॉज में।

केस 1 − यदि आप केवल वही पंक्तियाँ चाहते हैं जिनमें ठीक 10 अंक हों और सभी केवल अंक हों, तो नीचे दिए गए रेगुलर एक्सप्रेशन का उपयोग करें।

चुनें *अपनेTableName से जहां आपका कॉलमनाम REGEXP '^[0-9]{10}$';

केस 2 − यदि आप केवल 1 या अधिक अंकों वाली वे पंक्तियाँ चाहते हैं, तो निम्नलिखित सिंटैक्स है -

चुनें *अपने टेबलनाम से जहां आपका कॉलमनाम REGEXP '^[0-9]*$';

उपरोक्त सिंटैक्स केवल वे पंक्तियाँ देगा जिनमें कोई वर्ण नहीं है।

उपरोक्त सिंटैक्स को समझने के लिए, आइए एक टेबल बनाएं। तालिका बनाने की क्वेरी इस प्रकार है -

mysql> OnlyDigits(UserId, UserName) value('123User1','John') में डालें; क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.16 सेकंड) mysql> OnlyDigits (UserId, UserName) मानों में डालें ('3445User2', 'कैरोल'); क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.19 सेकंड) mysql> केवल अंक (उपयोगकर्ता आईडी, उपयोगकर्ता नाम) मान ('145363 उपयोगकर्ता 3', 'माइक') में डालें; क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.20 सेकंड) mysql> में डालें केवल अंक (उपयोगकर्ता आईडी, उपयोगकर्ता नाम) मान ('13455 उपयोगकर्ता 4', 'लैरी'); क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.22 सेकंड) mysql> केवल अंक (उपयोगकर्ता आईडी, उपयोगकर्ता नाम) मान ('123555 उपयोगकर्ता 5', 'सैम') में डालें; क्वेरी ठीक है , 1 पंक्ति प्रभावित (0.15 सेकंड) mysql> OnlyDigits (UserId, UserName) मान ('596766User6', 'David') में डालें; क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.24 सेकंड) mysql> OnlyDigits (UserId, UserName) मानों में डालें ('96977User7', 'Robert'); क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.15 सेकंड) mysql> केवल अंक (उपयोगकर्ता आईडी, उपयोगकर्ता नाम) मानों में डालें ('99999 उपयोगकर्ता 8', 'जेम्स'); क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.20 सेकंड) )mysql> केवल अंक (उपयोगकर्ता आईडी, उपयोगकर्ता नाम) मान ('9999999', 'जेम्स') में डालें; क्वेरी ठीक है, 1 पंक्ति प्रभावित (0. 13 सेकंड)mysql> केवल अंक (उपयोगकर्ता आईडी, उपयोगकर्ता नाम) मान ('153545', 'मैक्सवेल') में डालें; क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.23 सेकंड) mysql> केवल अंक (उपयोगकर्ता आईडी, उपयोगकर्ता नाम) मानों में डालें ('99999986787', 'जॉनसन');क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.20 सेकंड)

अब आप सेलेक्ट स्टेटमेंट का उपयोग करके टेबल से सभी रिकॉर्ड प्रदर्शित कर सकते हैं। क्वेरी इस प्रकार है -

mysql> केवल डिजिट से *चुनें;

निम्नलिखित आउटपुट है -

<पूर्व>+----+---------------+----------+| आईडी | उपयोगकर्ता आईडी | उपयोगकर्ता नाम |+-------+----------------+----------+| 1 | 123उपयोगकर्ता1 | जॉन || 2 | 3445उपयोगकर्ता2 | कैरल || 3 | 145363उपयोगकर्ता3 | माइक || 4 | 13455उपयोगकर्ता4 | लैरी || 5 | 123555उपयोगकर्ता5 | सैम || 6 | 596766उपयोगकर्ता6 | डेविड || 7 | 96977उपयोगकर्ता7 | रॉबर्ट || 8 | 99999उपयोगकर्ता8 | जेम्स || 9 | 9999999 | जेम्स || 10 | 153545 | मैक्सवेल || 11 | 9999986787 | जॉनसन |+----+----------------+----------+11 पंक्तियों में सेट (0.00 सेकंड)

केस 1 - जब आप एक स्ट्रिंग में ठीक 10 अंक चाहते हैं तो रेगेक्स के साथ निम्नलिखित क्वेरी है और सभी एक संख्या होनी चाहिए:

mysql> *onlyDigits-> से चुनें जहां UserId REGEXP '^[0-9]{10}$';

निम्न आउटपुट है -

+-----+---------------+----------+| आईडी | उपयोगकर्ता आईडी | उपयोगकर्ता नाम |+-------+---------------+----------+| 11 | 9999986787 | जॉनसन |+----+------------+----------+1 पंक्ति में सेट (0.00 सेकंड)

केस 1 का वैकल्पिक रेगुलर एक्सप्रेशन. क्वेरी इस प्रकार है:

mysql> *onlyDigits-> से चुनें जहां UserId REGEXP '^[[:digit:]]{10}$';

निम्न आउटपुट है -

+-----+---------------+----------+| आईडी | उपयोगकर्ता आईडी | उपयोगकर्ता नाम |+-------+---------------+----------+| 11 | 9999986787 | जॉनसन |+----+------------+----------+1 पंक्ति में सेट (0.00 सेकंड)

केस 2 − यदि आप केवल उन पंक्तियों को एक या अधिक अंक (केवल अंक) के साथ चाहते हैं। क्वेरी इस प्रकार है:

mysql> *onlyDigits-> से चुनें जहां UserId REGEXP'^[0-9]*$';

निम्न आउटपुट है:

+-----+---------------+----------+| आईडी | उपयोगकर्ता आईडी | उपयोगकर्ता नाम |+-------+---------------+----------+| 9 | 9999999 | जेम्स || 10 | 153545 | मैक्सवेल || 11 | 9999986787 | जॉनसन |+----+------------+----------+3 पंक्तियों में सेट (0.00 सेकंड)

  1. संख्या को अनदेखा करने और केवल स्ट्रिंग और '/' प्राप्त करने के लिए MySQL REGEXP का उपयोग करें

    इसके लिए REGEXP_REPLACE() का इस्तेमाल करें। आइए पहले एक टेबल बनाएं - );क्वेरी ओके, 0 पंक्तियाँ प्रभावित (0.44 सेकंड) इंसर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें - DemoTable1595 मानों में डालें (101 302 405 सैम/9870); क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.28 सेकंड) चयन कथन का उपयोग करके त

  1. एक विशिष्ट MySQL पंक्ति से केवल एक ही मान प्राप्त करें?

    इसके लिए जहां क्लॉज के साथ SELECT INTO वेरिएबल का इस्तेमाल करें। आइए पहले एक टेबल बनाएं - टेबल बनाएं DemoTable1896 (StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY, StudentName varchar(20), StudentMarks int );क्वेरी ओके, 0 पंक्तियाँ प्रभावित (0.00 सेकंड) इंसर्ट कमांड का उपयोग करके टेबल में कुछ र

  1. एक MySQL संग्रहीत प्रक्रिया में केवल एक विशेष रिकॉर्ड प्राप्त करने के लिए IN () का उपयोग करें?

    आइए पहले एक टेबल बनाएं - टेबल बनाएं DemoTable2004(UserId varchar(20), UserName varchar(20));क्वेरी ओके, 0 पंक्तियाँ प्रभावित (0.57 सेकंड) इंसर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें - DemoTable2004 मान (111_Bob,Bob) में डालें; क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.14 सेकंड) चयन कथन का उप