Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Mysql mengekstrak huruf pertama dari setiap kata di kolom tertentu

Berikut adalah fungsi yang "ditingkatkan", memungkinkan untuk memfilter hanya karakter yang diinginkan berkat ekspresi reguler.

  • fungsi initials melakukan pekerjaan yang sebenarnya, Anda harus menentukan ekspresi reguler
  • fungsi acronym apakah tugasnya hanya menyimpan karakter Alfa-numerik

(Gunakan upper , lower atau ucase berfungsi pada output jika perlu).

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 ;

Contoh1:

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

Keluaran:

Contoh2:

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

Keluaran:



  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 cursors.execute() dengan hanya satu parameter:Mengapa string diiris ke dalam daftar?

  2. Untuk apa driver jdbc org.gjt.mm.mysql.Driver?

  3. Mengambil data dengan struktur hierarki di MySQL

  4. Kesalahan mysql 1452 - Tidak dapat menambah atau memperbarui baris anak:batasan kunci asing gagal

  5. 'OPSI SQL_SELECT_LIMIT=DEFAULT'