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

MYSQL में PATINDEX () प्रतिस्थापन

जबकि कोई औपचारिक PATINDEX() नहीं है MySQL में फ़ंक्शन जो लौटाए गए वर्ण अनुक्रमणिका, या LOCATE() के संयोजन के साथ रेगेक्स पैटर्न लुकअप दोनों को प्राप्त करता है और REGEXP() , एक उपयोगकर्ता-परिभाषित फ़ंक्शन पर विचार करें जो एक स्ट्रिंग की लंबाई में प्रत्येक वर्ण के माध्यम से लूप करता है और REGEXP की जांच करता है चरित्र पर पैटर्न। एक बार बन जाने के बाद, इस तरह के फ़ंक्शन को क्वेरी के इन-लाइन उपयोग करें।

DROP FUNCTION IF EXISTS PatIndex;

DELIMITER $$

CREATE FUNCTION PatIndex(pattern VARCHAR(255), tblString VARCHAR(255)) RETURNS INTEGER
    DETERMINISTIC
BEGIN

    DECLARE i INTEGER;
    SET i = 1;

    myloop: WHILE (i <= LENGTH(tblString)) DO

        IF SUBSTRING(tblString, i, 1) REGEXP pattern THEN
            RETURN(i);
            LEAVE myloop;        
        END IF;    

        SET i = i + 1;

    END WHILE; 

    RETURN(0);

END

क्वेरी (स्ट्रिंग में पहले अंक की खोज)

SELECT mystring, PatIndex('[0-9]', mystring) As FirstNumberCharacter
FROM myTable


  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. JPA MySQLIntegrityConstraintViolationException में माता-पिता/बच्चे के परिणाम डालें

  3. MySQL क्वेरी - वर्तमान तिथि के आधार पर रिकॉर्ड प्राप्त करें

  4. ईएफ कोर 2.0 पहचान - नेविगेशन गुण जोड़ना

  5. Windows 10 पर MySQL 8.x में lower_case_table_names सेट नहीं कर सकता