Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Mysql trích xuất chữ cái đầu tiên của mỗi từ trong một cột cụ thể

Đây là một chức năng "được cải tiến", cho phép chỉ lọc các ký tự mong muốn nhờ vào một biểu thức chính quy.

  • hàm initials thực hiện công việc thực tế, bạn phải chỉ định biểu thức chính quy
  • hàm acronym công việc chỉ giữ các ký tự chữ-số

(Sử dụng upper , lower hoặc ucase các chức năng trên đầu ra nếu cần).

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 ;

Ví dụ 1:

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

Kết quả đầu ra:

Ví dụ 2:

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

Kết quả đầu ra:



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kết nối từ xa với cơ sở dữ liệu clearDB heroku

  2. Mã lỗi:1005. Không thể tạo bảng '...' (errno:150)

  3. MySQL TRÊN KHÓA DUPLICATE - id chèn lần cuối?

  4. MySQL:cách lập chỉ mục một mệnh đề OR

  5. SQLAlchemy JSON dưới dạng blob / text