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

Bagaimana saya bisa mencapai fungsionalitas initcap di MySQL?

Beberapa waktu yang lalu saya mencari fungsi initcap/ucfirst bawaan di MySQL tetapi sayangnya tidak dapat menemukan fungsi string seperti itu, jadi saya memutuskan untuk menulis sendiri.. terima kasih kepada anggota komunitas MySQL yang memperbaiki bug di fungsi saya &mempostingnya kembali .

DELIMITER $$

DROP FUNCTION IF EXISTS `test`.`initcap`$$

CREATE FUNCTION `initcap`(x char(30)) RETURNS char(30) CHARSET utf8
READS SQL DATA
DETERMINISTIC
BEGIN
SET @str='';
SET @l_str='';
WHILE x REGEXP ' ' DO
SELECT SUBSTRING_INDEX(x, ' ', 1) INTO @l_str;
SELECT SUBSTRING(x, LOCATE(' ', x)+1) INTO x;
SELECT CONCAT(@str, ' ', CONCAT(UPPER(SUBSTRING(@l_str,1,1)),LOWER(SUBSTRING(@l_str,2)))) INTO @str;
END WHILE;
RETURN LTRIM(CONCAT(@str, ' ', CONCAT(UPPER(SUBSTRING(x,1,1)),LOWER(SUBSTRING(x,2)))));
END$$

DELIMITER ;


Usage: 

select initcap('This is test string');


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kesalahan sintaks SQL

  2. Bagaimana mengatur dan mengelompokkan hasil MySQL

  3. Menghubungkan kode sumber PHP dan mengirimkan formulir ke Database MySQL

  4. Kueri yang tidak perlu di Hibernate - MySql

  5. MySQL - jumlah nilai kolom berdasarkan baris dari tabel yang sama