Mysql
 sql >> база данни >  >> RDS >> Mysql

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. Как да предам текущата стойност на реда в модален?

  2. MySQL стойност по подразбиране като стойност на друго поле

  3. MySQL:възможно ли е group_concat няколко реда?

  4. Как да вмъкнете тагове в база данни с помощта на jquery html и php

  5. MySQL подрежда публикации по последен коментар ИЛИ последно публикуван