Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

MySQL에서 INITCAP() 기능의 반대를 구현하는 방법은 무엇입니까?


INITCAP() 메서드는 모든 단어의 첫 번째 문자를 대문자로 표시하고 나머지는 소문자로 표시합니다.

반대 기능을 구현하려면 MySQL에서 고유한 기능을 만들어야 합니다. 다음은 기능입니다 -

mysql> delimiter //
mysql> create function convertFirstLetterToLowerAndRemainingToCapital(value varchar(250))
   returns varchar(250)
   deterministic
   begin
   declare valueLength int;
   declare l int;
   set valueLength = char_length(value);
   set value = upper(value);
   set l = 0;
   while (l < valueLength ) do
      if (mid(value,l ,1) = ' ' or l = 0) then
         if (l < valueLength ) then
            set value= concat(
               left(value,l),
               lower(mid(value,l+ 1,1)),
               right(value,valueLength - l - 1)
            );
         end if;
      end if;
   set l = l + 1;
   end while;
   return value;
   end;
   //
Query OK, 0 rows affected (0.17 sec)
mysql> delimiter ;

select 문의 도움으로 함수 호출 -

mysql> select convertFirstLetterToLowerAndRemainingToCapital('Introduction To MySQL');

이것은 다음과 같은 출력을 생성합니다 -

+-------------------------------------------------------------------------+
| convertFirstLetterToLowerAndRemainingToCapital('Introduction To MySQL') |
+-------------------------------------------------------------------------+
| iNTRODUCTION tO mYSQL                                                   |
+-------------------------------------------------------------------------+
1 row in set, 2 warnings (0.04 sec)