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

मैसकल एक विशिष्ट कॉलम में प्रत्येक शब्द का पहला अक्षर निकालता है

यहां एक "बेहतर" फ़ंक्शन दिया गया है, जो रेगुलर एक्सप्रेशन के कारण केवल वांछित वर्णों को फ़िल्टर करने की अनुमति देता है।

  • फ़ंक्शन initials वास्तविक कार्य करता है, आपको रेगुलर एक्सप्रेशन निर्दिष्ट करना होगा
  • फ़ंक्शन acronym केवल अल्फा-न्यूमेरिक वर्णों को रखते हुए काम करता है

(upper का प्रयोग करें , lower या ucase यदि आवश्यक हो तो आउटपुट पर कार्य करता है)।

delimiter $$
drop function if exists `initials`$$
CREATE FUNCTION `initials`(str text, expr text) RETURNS text CHARSET utf8
begin
    declare result text default '';
    declare buffer text default '';
    declare i int default 1;
    if(str is null) then
        return null;
    end if;
    set buffer = trim(str);
    while i <= length(buffer) do
        if substr(buffer, i, 1) regexp expr then
            set result = concat( result, substr( buffer, i, 1 ));
            set i = i + 1;
            while i <= length( buffer ) and substr(buffer, i, 1) regexp expr do
                set i = i + 1;
            end while;
            while i <= length( buffer ) and substr(buffer, i, 1) not regexp expr do
                set i = i + 1;
            end while;
        else
            set i = i + 1;
        end if;
    end while;
    return result;
end$$

drop function if exists `acronym`$$
CREATE FUNCTION `acronym`(str text) RETURNS text CHARSET utf8
begin
    declare result text default '';
    set result = initials( str, '[[:alnum:]]' );
    return result;
end$$
delimiter ;

उदाहरण1:

select acronym('Come Again? That Cant Help!');

आउटपुट:

उदाहरण2:

select initials('Come Again? That Cant Help!', '[aeiou]');

आउटपुट:



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Typo3 V6:सामग्री तत्व कंटेनर कैसे बनाएं? (टीवी के बिना)

  2. प्रदर्शन शुरू होने से पहले MySQL डेटाबेस कितना बड़ा हो सकता है

  3. यह परिणाम केवल फॉरवर्ड परिणाम सेट है, आगे बढ़ने के बाद रिवाइंड () को कॉल करना समर्थित नहीं है - Zend

  4. डेटाबेस अखंडता को संभालना

  5. MySQL प्राथमिक कुंजी:UUID / GUID बनाम BIGINT (टाइमस्टैम्प + यादृच्छिक)